casU2fRegistrationView.html 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <!DOCTYPE html>
  2. <html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout}">
  3. <head>
  4. <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  5. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
  6. <title th:text="#{cas.mfa.u2f.pagetitle}">U2f Registration View</title>
  7. <link href="../../static/css/cas.css" rel="stylesheet" th:remove="tag" />
  8. <script th:src="@{/js/u2f/u2f-api.js}"></script>
  9. <script th:inline="javascript">
  10. /*<![CDATA[*/
  11. setTimeout(function () {
  12. var appId = /*[[${u2fReg.appId}]]*/;
  13. var version = /*[[${u2fReg.version}]]*/;
  14. var challenge = /*[[${u2fReg.challenge}]]*/;
  15. var registerRequests = [{version: version, challenge: challenge}];
  16. console.log(appId, registerRequests);
  17. u2f.register(appId, registerRequests, [], function (data) {
  18. var form = document.getElementById('form');
  19. var reg = document.getElementById('tokenResponse');
  20. if (data.errorCode) {
  21. console.log('U2F failed: error ' + data.errorCode);
  22. return;
  23. }
  24. reg.value = JSON.stringify(data);
  25. form.submit();
  26. });
  27. }, 1000);
  28. /*]]>*/
  29. </script>
  30. </head>
  31. <body>
  32. <main role="main" class="container mt-3 mb-3">
  33. <div layout:fragment="content" id="login">
  34. <div class="alert alert-info">
  35. <h3 th:text="#{cas.mfa.u2f.register.device}">Register Device</h3>
  36. <div th:utext="#{cas.mfa.u2f.authentication.message}">
  37. <p><strong>Please touch the flashing U2F device now.</strong></p>
  38. <p> You may be prompted to allow the site permission to access your security keys. After granting
  39. permission, the device will start to blink.</p>
  40. </div>
  41. <form method="POST" id="form">
  42. <input type="hidden" name="tokenResponse" id="tokenResponse"/>
  43. <input type="hidden" name="_eventId" value="submit"/>
  44. <input type="hidden" name="execution" th:value="${flowExecutionKey}"/>
  45. </form>
  46. </div>
  47. </div>
  48. </main>
  49. </body>
  50. </html>