WSO2 Identity Server 5.10 OIDC授权码流Passed URL is empty报错咨询
问题根因
你遇到的HTTP 500报错由两层问题叠加导致:
- 部署WSO2 Identity Server时缺失同意管理模块的核心数据库表,用户认证完成后系统查询用户历史授权同意记录失败,触发同意处理异常
- 异常处理逻辑尝试构造错误跳转页面时无法获取正确的错误页URL,最终抛出
java.lang.IllegalArgumentException: Passed URL is empty异常
解决方案
方案一:无需用户同意功能时直接关闭同意提示
如果你的业务场景不需要用户手动确认授权同意,可直接在服务提供商配置中关闭该功能:
- 登录WSO2 IS管理控制台,进入对应Oauth服务提供商的配置页面
- 展开
Local & Outbound Authentication Configuration板块,勾选Skip Consent选项后保存配置即可生效
方案二:保留同意功能时补建缺失表结构
如果需要保留用户同意授权功能,手动补建对应数据库表即可:
- 获取WSO2 IS 5.10版本对应你使用的数据库类型的同意管理表创建脚本,脚本包含所有
CM_前缀的表定义(如CM_RECEIPT、CM_RECEIPT_SP_ASSOC等) - 连接你的WSO2身份库(WSO2IS_IDENTITY_DB)执行上述建表脚本,完成后重启WSO2 IS实例即可
你使用的开源Kubernetes部署脚本未内置同意管理相关表的初始化逻辑,属于脚本遗漏问题,采用上述两种方案任意一种即可解决该报错。
内容的提问来源于stack exchange,提问作者vortex.alex
相关产品推荐
相关产品推荐

