WSO2 Identity Server 5.10迁移至5.11后,更新手机号验证功能失效
WSO2 IS 5.10迁移至5.11后「更新手机号验证」功能未生效的排查方案
以下是针对迁移后该功能失效的具体排查与修复步骤:
检查SCIM2核心配置文件完整性
对比全新安装的5.11版本,确认迁移后的<IS_HOME>/repository/conf/scim2/SCIM2Config.xml中是否包含手机号验证的处理器配置:<AttributeHandler class="org.wso2.carbon.identity.scim2.provider.impl.UserMobileNumberVerificationAttributeHandler"> <Property name="enableMobileNumberVerification">true</Property> </AttributeHandler>若缺失,手动添加该配置段后重启服务器。
验证用户声明配置
进入管理控制台,依次打开「主菜单 > 身份 > 声明 > 本地声明」:- 确认
mobile声明的URI为http://wso2.org/claims/mobile,且映射属性正确。 - 检查是否存在
pendingMobileNumber声明,若缺失则手动添加:- 声明URI:
http://wso2.org/claims/pendingMobileNumber - 映射属性:
pendingMobileNumber
保存后回到本地身份提供商的声明配置页面,确保该声明已被关联。
- 声明URI:
- 确认
确认身份提供商策略配置细节
再次进入「主菜单 > 身份提供商 > 本地身份提供商 > 账号管理策略 > 用户声明更新」:- 除了勾选「启用用户更新手机号验证」,需确保「允许用户更新手机号」已开启。
- 检查配套的验证流程(如短信OTP)是否已正确配置并启用(比如短信网关或SMTP服务正常运行)。
清理缓存并重启服务
迁移后可能存在缓存残留导致配置未生效:- 删除
<IS_HOME>/repository/tmp和<IS_HOME>/repository/carbondb目录(操作前请备份数据库)。 - 重启WSO2 Identity Server,之后重新测试SCIM PATCH请求。
- 删除
检查数据库升级完整性
连接用户数据库(如MySQL、PostgreSQL):- 查看
UM_USER_ATTRIBUTE表中是否支持pendingMobileNumber属性的存储。 - 若数据库结构未完成升级,重新执行
<IS_HOME>/dbscripts目录下对应数据库的5.11升级脚本,确保所有表结构和属性字段已更新。
- 查看
内容的提问来源于stack exchange,提问作者Soufiane
相关产品推荐
相关产品推荐

