WSO2 API Manager 3.2.0单节点Registered callback不匹配问题咨询
WSO2 API Manager 3.2.0 单节点回调匹配报错原因排查
可能的触发原因
- 节点本地配置差异:两台节点的
deployment.toml配置相互独立,即使碳控制台配置了统一的正则回调规则,若172.25.129.67节点本地<APIM_HOME>/repository/conf/deployment.toml中[apim.publisher]模块下的callback_url参数配置和正则规则中的地址不一致(比如误写为hostname、多/少末尾斜杠、端口错误),就会触发匹配失败。 - 正则匹配规则未兼容动态参数:你当前配置的正则为精确路径匹配,若
172.25.129.67节点跳转回调时自动携带了state、session类的查询参数,实际回调地址会比正则规则多后缀参数,导致匹配失败。 - 节点配置缓存未更新:WSO2会将服务提供者的回调规则缓存到本地节点,若你修改碳控制台配置后仅重启了
172.25.129.66节点,172.25.129.67节点仍在使用旧的缓存规则,就会出现单节点报错的情况。 - 请求链路被修改:若
172.25.129.67节点前置有反向代理、NAT转换设备,实际回调请求到达节点时IP、端口、路径被修改,和正则规则中的公网/原始IP地址不匹配,也会触发报错。
排查修复步骤
- 核对
172.25.129.67节点的deployment.toml配置,确认callback_url值和正则规则中的https://172.25.129.67:9443/publisher/services/auth/callback/login完全一致。 - 触发报错时复制浏览器地址栏的完整回调地址,和正则规则对比,若存在额外查询参数,可将正则调整为兼容后缀的格式:
regexp=(https://172.25.129.66:9443/publisher/services/auth/callback/login.*|https://172.25.129.66:9443/publisher/services/auth/callback/logout.*|https://172.25.129.67:9443/publisher/services/auth/callback/login.*|https://172.25.129.67:9443/publisher/services/auth/callback/logout.*)
- 重启
172.25.129.67节点清除本地配置缓存,或直接登录172.25.129.67的碳控制台,检查APIM_PUBLISHER服务提供者的回调规则是否和预期一致,重新保存后测试。 - 检查
172.25.129.67节点的请求链路,若存在代理设备修改请求地址的情况,将转换后的实际回调地址补充到正则规则中。
内容的提问来源于stack exchange,提问作者Tohid Makari
相关产品推荐
相关产品推荐

