Newer
Older
cas-server / cas / WEB-INF / classes / templates / casU2fRegistrationView.html
zhout on 17 Jun 2021 2 KB first commit
<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout}">

<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>

    <title th:text="#{cas.mfa.u2f.pagetitle}">U2f Registration View</title>
    <link href="../../static/css/cas.css" rel="stylesheet" th:remove="tag" />
    <script th:src="@{/js/u2f/u2f-api.js}"></script>

    <script th:inline="javascript">
        /*<![CDATA[*/

        setTimeout(function () {
            var appId =  /*[[${u2fReg.appId}]]*/;

            var version =  /*[[${u2fReg.version}]]*/;

            var challenge =  /*[[${u2fReg.challenge}]]*/;

            var registerRequests = [{version: version, challenge: challenge}];
            console.log(appId, registerRequests);
            u2f.register(appId, registerRequests, [], function (data) {
                var form = document.getElementById('form');
                var reg = document.getElementById('tokenResponse');
                if (data.errorCode) {
                    console.log('U2F failed: error ' + data.errorCode);
                    return;
                }
                reg.value = JSON.stringify(data);
                form.submit();
            });
        }, 1000);

        /*]]>*/
    </script>

</head>

<body>
<main role="main" class="container mt-3 mb-3">
    <div layout:fragment="content" id="login">
        <div class="alert alert-info">
            <h3 th:text="#{cas.mfa.u2f.register.device}">Register Device</h3>
            <div th:utext="#{cas.mfa.u2f.authentication.message}">
                <p><strong>Please touch the flashing U2F device now.</strong></p>
                <p> You may be prompted to allow the site permission to access your security keys. After granting
                    permission, the device will start to blink.</p>
            </div>

            <form method="POST" id="form">
                <input type="hidden" name="tokenResponse" id="tokenResponse"/>
                <input type="hidden" name="_eventId" value="submit"/>
                <input type="hidden" name="execution" th:value="${flowExecutionKey}"/>
            </form>
        </div>
    </div>
</main>
</body>
</html>