<!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>