我们遇到类似于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调用,没有变化 .