我们遇到与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开始 - 2个网关wso2server.sh -Dprofile =网关管理器启动 - 为所有节点共享的唯一H2数据库集 (我们可以随时重建环境)
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的评论)
,因此无法通过调试进行测试