login-update-password.ftl 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name='viewport' content='width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no' />
  6. <title>${realm.displayName}</title>
  7. <link rel="stylesheet" href="${url.resourcesPath}/css/password.css" />
  8. </head>
  9. <body>
  10. <div class="c-login">
  11. <form
  12. id="loginForm"
  13. class="c-login__main c-login-form"
  14. action="${url.loginAction}"
  15. method="post"
  16. onsubmit="login.disabled = true; return false;"
  17. >
  18. <div class="c-login-form__header">修改密码</div>
  19. <div class="c-login-form__tip">
  20. <#if !messagesPerField.existsError('password','password-confirm') && message?has_content && !isAppInitiatedAction??>
  21. <span class="${message.type}">${kcSanitize(message.summary)?no_esc}</span>
  22. </#if>
  23. </div>
  24. <input id="username" name="username" type="text" value="${username}" autocomplete="username" readonly="readonly" style="display:none;"/>
  25. <input id="password" name="password" type="password" autocomplete="current-password" style="display:none;"/>
  26. <div class="c-login-form__section">
  27. <div class="c-login-form__wrapper">
  28. <label
  29. for="passwordNewProxy"
  30. class="c-login-form__label"
  31. >
  32. 新密码:
  33. </label>
  34. <input
  35. id="passwordNewProxy"
  36. type="password"
  37. class="c-login-form__input"
  38. placeholder="请输入新密码"
  39. autocomplete="new-password"
  40. aria-autocomplete="none"
  41. >
  42. </div>
  43. <div class="c-login-form__error">
  44. <#if messagesPerField.existsError('password')>
  45. ${kcSanitize(messagesPerField.get('password'))?no_esc}
  46. </#if>
  47. </div>
  48. </div>
  49. <div class="c-login-form__section">
  50. <div class="c-login-form__wrapper">
  51. <label
  52. for="passwordConfirmProxy"
  53. class="c-login-form__label"
  54. >
  55. 确认新密码:
  56. </label>
  57. <input
  58. id="passwordConfirmProxy"
  59. type="password"
  60. class="c-login-form__input"
  61. placeholder="请输入新密码"
  62. autocomplete="new-password"
  63. aria-autocomplete="none"
  64. >
  65. </div>
  66. <div class="c-login-form__error">
  67. <#if messagesPerField.existsError('password-confirm')>
  68. ${kcSanitize(messagesPerField.get('password-confirm'))?no_esc}
  69. </#if>
  70. </div>
  71. </div>
  72. <input id="passwordNew" name="password-new" hidden >
  73. <input id="passwordConfirm" name="password-confirm" hidden >
  74. <button
  75. class="c-login-form__submit"
  76. name="login"
  77. onclick="onSubmit()"
  78. >
  79. 保存
  80. </button>
  81. </form>
  82. </div>
  83. <script src="${url.resourcesPath}/js/md5.js"></script>
  84. <script>
  85. function onSubmit () {
  86. var form = document.getElementById('loginForm')
  87. document.getElementById('passwordNew').value = MD5Salt(document.getElementById('passwordNewProxy').value)
  88. document.getElementById('passwordConfirm').value = MD5Salt(document.getElementById('passwordConfirmProxy').value)
  89. form.submit()
  90. }
  91. </script>
  92. </body>
  93. </html>