我们遇到类似于WSO2 Authentication failure on gateway node running WSO2 AM 2.1.0中报告的问题,但我们的配置略有不同,我们已经做了一些额外的测试
环境:Ubuntu LTS 16.04.4 Java“1.8.0_171”(已知报道问题,见下文)WSO2 2.1.0我们已经停用了3个节点中的压缩,编辑了catalina-server.xml补充:我们之后重复了测试将Java降级到1.8.0_144 . 结果相同 .
我们在同一台机器上部署了3个节点 - 1个管理器wso2server.sh start - 2个网关wso2server.sh -Dprofile = gateway-manager start - 独特的H2数据库集,共享所有节点(我们能够重建环境)任何时刻,从头开始)
初步测试
-
我们已经使用thrift配置了API Key Validator . 在管理器节点中只启动了一个ThriftServer
-
Manager节点密钥API Key Validator(由example.com更改的真实主机名)
<APIKeyValidator>
<ServerURL>https://apimanager.example.com:9443/services/</ServerURL>
<Username>${admin.username}</Username>
<Password>${admin.password}</Password>
<KeyValidatorClientType>ThriftClient</KeyValidatorClientType>
<ThriftClientConnectionTimeOut>10000</ThriftClientConnectionTimeOut>
<EnableThriftServer>true</EnableThriftServer>
<ThriftServerHost>apimanager.example.com</ThriftServerHost>
<ThriftClientPort>10397</ThriftClientPort>
<KeyValidationHandlerClassName>org.wso2.carbon.apimgt.keymgt.handlers.DefaultKeyValidationHandler</KeyValidationHandlerClassName>
</APIKeyValidator>
- 沙箱和网关节点密钥API密钥验证程序是相同的配置,但参数
<EnableThriftServer>
是false
测试结果在API控制台中,我们得到(我们在GET /菜单中使用PizzaShack API示例)
{ "fault": { "code": 900900, "message": "Unclassified Authentication Failure", "description": "Error while accessing backend services for API key validation" } }
网关跟踪
TID: [-1234] [] [2018-05-21 13:15:17,351] WARN {org.wso2.carbon.apimgt.gateway.handlers.security.thrift.ThriftKeyValidatorClient} - Login failed.. Authenticating again.. {org.wso2.carbon.apimgt.gateway.handlers.security.thrift.ThriftKeyValidatorClient}
TID: [-1234] [] [2018-05-21 13:15:17,392] WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler} - API authentication failure due to Unclassified Authentication Failure {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler}
管理器跟踪(API控制台)
TID: [-1234] [] [2018-05-21 13:15:17,372] INFO {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil} - 'admin@carbon.super [-1234]' logged in at [2018-05-21 13:15:17,372+0200] from IP address {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil}
启用调试测试
由于之前的错误,无法通过调试进行测试(请参阅下面的Bee评论)
附加测试
-
根据原始帖子的建议,我们已将APIKeyValidator更改为WSClient . 经过一些初步配置问题,这个工作正常
-
我们也试过用CURL调用,没有变化 .