我正在配置我们的 API 管理器,但在通过 OAuth 进行身份验证时遇到问题,这似乎是 API 密钥管理器的问题。我还没有深入研究它,但这是否与 API Manager 一起提供(正如我所假设的那样)或者这是一个单独的安装?
6 回答
在亚马逊托管机器上使用 wso2 api 管理器时,我遇到了同样的问题,结果发现 Thrift 无法正常工作,因为多播和广播存在问题。
我所做的就是从 ThriftClient 切换到 WSClient。如果您有大量请求进入,那么 Thrift 是 wso2 推荐的解决方案,但在任何“正常”情况下,thrift 和 WS 之间不会有任何区别。
以下是切换方式:
- 关闭 API 管理器
- 打开 <api manager install dir>\repository\conf\api-manager.xml
- 查找 ThriftClient
- 将此更改为 <KeyValidatorClientType>WSClient</KeyValidatorClientType>
- 启动 API 管理器
启动时您可能会收到一些警告,但请在得出它不起作用的结论之前尝试一下。
希望能帮助到你!
您可以在分布式设置中使用 APIM 管理器产品作为密钥管理器、网关、存储、发布器..但所有功能都在一个发行版中.. .. 阅读文档以获取更多指南
我面临着同样的问题。当我尝试按照此处给出的步骤将 API Manager 设置为另一台机器中的 API 网关时,
https://docs.wso2.com/display/AM250/Publish+through+Multiple+API+Gateways
设置完成后,当我尝试使用此网关 URL 时,我收到以下响应,
{"fault":{"code":900900,"message":"Unclassified Authentication Failure","description":"Error while accessing backend services for API key validation"}}
将 KeyValidatorClientType 值从 ThriftClient 更改为 WSClient 后<api manager install dir>\repository\conf\api-manager.xml
它开始工作正常。我能够得到预期的回应。
安装后我遇到了同样的问题,当我尝试调用 api 服务时,它抛出以下错误:900900 Unclassified Authentication Failure Error while access backend services for API key validation
经过一些随机检查后,我在/repository/conf/axis2 中看到了axis2.xml 文件,它引用了一个不同的IP。我将这些 ip 更改为我的本地 ip 并重新启动。现在问题已经解决了。
我面临着同样的问题。当我创建自己的 jks 以便在没有自签名证书的情况下使用 SSL 时,一切都开始了。我成功创建了 jks 并在碳文件中进行了更改。当我启动服务器时,一切似乎都很好;但是当我使用 SOAPUI 测试 API 调用时,我得到了这个(在 api 管理器的日志中):
APIAuthenticationHandler API authentication failure due to Unclassified Authentication Failure
我开始通过在 log4j.properties 文件中启用调试级别来挖掘问题所在,然后再次尝试使用 SOAPUI 进行测试,我得到了:
APISecurityException: Could not connect to <my api ip address> on port 10397
然后,我阅读了 OneMuppet 的评论并检查了该文件,发现 Thrift 配置有一个主机选项,所以我取消了它的注释:
<KeyValidatorClientType>ThriftClient</KeyValidatorClientType>
<ThriftClientPort>10397</ThriftClientPort>
<ThriftClientConnectionTimeOut>10000</ThriftClientConnectionTimeOut>
<ThriftServerPort>10397</ThriftServerPort>
This Line --> <ThriftServerHost>localhost</ThriftServerHost>
<EnableThriftServer>true</EnableThriftServer>
保存,重新启动服务器,一切都开始正常工作。
如果您更改了管理员密码,那么您还必须使用新密码更新 repository/conf/api-manager.xml 文件。我改变的两个地方(到目前为止)是:
<AuthManager>
和
<APIKeyManager>
但该文件中还有其他管理员用户名。毫无疑问,我会去找他们......