WSO2 IS 5.10 点击过期重置密码链接时如何设置自定义提示消息
WSO2 IS 5.10 过期重置密码链接自定义提示实现方案
操作步骤
- 首先定位身份验证前端部署路径,默认路径为
$WSO2_IS_HOME/repository/deployment/server/webapps/authenticationendpoint,密码重置相关的页面和逻辑均在该目录下。 - 找到重置链接校验逻辑对应的文件,通常为
password-reset.jsp或recovery-flow.jsp:WSO2 IS默认会校验请求携带的confirmationCode参数是否为当前用户最新的有效校验码,校验失败时默认无错误内容输出,所以会显示空白页。 - 修改校验失败分支的逻辑,添加自定义提示:
你可以选择直接在当前页面添加渲染判断,也可以跳转到独立的自定义错误页,以下是直接渲染提示的示例代码:<% // 原有校验逻辑获取是否有效标识 boolean isInvalidLink = !passwordRecoveryUtil.isValidConfirmationCode(tenantDomain, user, confirmationCode); request.setAttribute("isInvalidLink", isInvalidLink); %> <!-- 页面body部分添加判断 --> <body> <% if(isInvalidLink) { %> <div style="width: 100%; text-align: center; margin-top: 120px; font-size: 18px; color: #333;"> 链接已过期,请返回登录页重新发起忘记密码请求 </div> <% } else { %> <!-- 原有正常密码重置页面的渲染逻辑 --> <% } %> </body> - 如果需要跳转到独立错误页,在校验失败分支添加跳转逻辑即可:
if(isInvalidLink) { request.setAttribute("errorMsg", "链接已过期,请重新发起密码重置"); request.getRequestDispatcher("custom-link-expired.jsp").forward(request, response); return; } - 修改完成后重启WSO2 IS服务即可生效,测试时多次发起忘记密码请求,点击最早生成的旧链接即可验证提示是否正常展示。
注意事项
- 如果已经配置了自定义的认证主题,需要将修改同步到自定义主题对应的文件中,避免补丁更新或服务重启后自定义内容被覆盖
- 生产环境建议提前备份原有JSP文件,避免修改错误影响正常密码重置功能
- 自定义错误页面需要和authenticationendpoint应用保持相同的上下文路径,避免静态资源(CSS、JS、图片)加载失败
内容的提问来源于stack exchange,提问作者Rajeev.Ranjan
相关产品推荐
相关产品推荐

