IBM IHS动态路由对openidConnect、adminCenter等特性API失效问题
问题根源
Liberty 17.x动态路由默认仅自动注册用户手动部署的应用上下文,openidConnectClient-1.0、adminCenter这类内置特性暴露的系统端点默认不会被纳入路由列表,所以会出现直接访问正常、走IHS 404的问题,你之前的routingRule配置也存在语法错误导致不生效。
解决步骤
- 开启内置端点暴露开关
在dynamicRouting配置标签中新增exposeInternalEndpoints="true"参数,允许动态路由识别系统内置端点,修改后配置如下:
<dynamicRouting maxRetries="5" retryInterval="10000" exposeInternalEndpoints="true"> <!-- 后续routingRules配置 --> </dynamicRouting>
- 修正routingRule语法错误
你之前的endpoint destination格式错误,多写了defaultCollective前缀,同时需要新增useOriginalURI="true"确保请求路径原样转发到后端:
- 针对openid接口的路由规则:
<routingRule order="100" matchExpression="URI LIKE '/was-services-openid%'"> <permitAction useOriginalURI="true"> <loadBalanceEndPoints> <endpoint destination="cluster=servicesAppCluster"/> </loadBalanceEndPoints> </permitAction> </routingRule>
- 针对控制器上adminCenter的路由规则:
<routingRule order="99" matchExpression="URI LIKE '/adminCenter%' OR URI LIKE '/ibm/api%'"> <permitAction useOriginalURI="true"> <loadBalanceEndPoints> <endpoint destination="cluster=was-controller,%2Fwlp%2Fusr:defaultServer"/> </loadBalanceEndPoints> </permitAction> </routingRule>
- 刷新配置生效
修改完成后,等待插件自动刷新(你配置的RefreshInterval为60秒),或手动重启IHS加载新配置,再查看server-status就能看到内置端点的上下文注册信息。
内容的提问来源于stack exchange,提问作者Dyapa Srikanth
相关产品推荐
相关产品推荐

