You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 Identity Server 5.11 按文档无法找到密码过期配置选项咨询

WSO2 Identity Server 5.11 密码过期功能实现方案

WSO2 IS 5.11版本未内置官方高版本的密码过期可视化配置项,也不兼容新版的password policy authenticator组件,可通过以下内置功能组合实现需求:

1. 启用密码过期事件配置

编辑配置文件 IS_HOME/repository/conf/identity/identity-event.properties,修改以下参数:

  • 开启密码过期事件监听器:event.listener.passwordExpiry.enable=true
  • 设置密码有效天数(可根据业务调整):password.expiry.days=90
  • 可选:开启密码过期前提醒,设置提前提醒天数:
    • password.expiry.reminder.enable=true
    • password.expiry.reminder.days=7

2. 开启密码时间戳声明

登录WSO2 IS管理控制台,按路径操作:用户和角色 → 声明 → 选择http://wso2.org/claims声明集 → 找到「上次密码更改时间戳」选项,勾选支持、由管理员读取/编辑,保存配置。该字段会在用户每次修改密码时自动更新时间戳。

3. 配置认证强制跳转逻辑

进入身份提供商 → Resident → 登录与注册配置 → 自适应认证设置,给需要启用密码过期校验的应用添加如下认证判断脚本:

function onLoginRequest(context) {
  const currentUser = context.currentKnownUser;
  if (!currentUser) {
    executeStep(1);
    return;
  }
  // 获取用户上次改密码时间戳
  const lastPwdChange = parseInt(currentUser.localClaims['http://wso2.org/claims/lastPasswordChangedTimestamp']);
  // 和步骤1配置的有效天数保持一致
  const expiryDays = 90;
  const expiryTime = lastPwdChange + (expiryDays * 24 * 60 * 60 * 1000);
  // 密码已过期,强制跳转密码修改页
  if (Date.now() > expiryTime) {
    sendPasswordReset(context);
    return;
  }
  // 密码未过期,继续正常认证流程
  executeStep(1);
}

4. 生效验证

修改完所有配置后重启WSO2 IS实例,创建测试账号并将其「上次密码更改时间戳」设置为超过有效天数的历史值,登录测试即可验证自动跳转逻辑是否正常。

注意事项
  • 若使用自定义外部用户存储,需自行配置用户改密码时同步更新lastPasswordChangedTimestamp字段的逻辑
  • 密码修改页面可自行修改IS_HOME/repository/deployment/server/webapps/authenticationendpoint/下的前端文件自定义样式

内容的提问来源于stack exchange,提问作者Pragati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:36:03