【发布时间】:2019-02-26 19:30:54
【问题描述】:
我正在使用 WSO2 API Manager 2.6.0 并将 Pre packaged Identity Server 5.7.0 配置为密钥管理器。当我在 API Store 中创建应用程序并生成密钥时,我可以看到在 Identity Server 中创建了服务提供者。我还可以使用生成的消费者 ID 和秘密获取令牌。 但是,当我将该令牌传递给我的 API 时,我收到未分类的身份验证错误。以下是我可以在日志中看到的异常,
错误 - APIAuthenticationHandler API 身份验证失败,由于未分类的身份验证失败 org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityException:访问后端服务以进行 API 密钥验证时出错 在 org.wso2.carbon.apimgt.gateway.handlers.security.keys.WSAPIKeyDataStore.getAllURITemplates(WSAPIKeyDataStore.java:77) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.getAllURITemplates(APIKeyValidator.java:791) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.doGetAPIInfo(APIKeyValidator.java:639) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.findMatchingVerb(APIKeyValidator.java:573) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator.getResourceAuthenticationScheme(APIKeyValidator.java:357) 在 org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator.authenticate(OAuthAuthenticator.java:127) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler.isAuthenticate(APIAuthenticationHandler.java:210) 在 org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler.handleRequest(APIAuthenticationHandler.java:158) 在 org.apache.synapse.rest.API.process(API.java:325) 在 org.apache.synapse.rest.RESTRequestHandler.apiProcessNonDefaultStrategy(RESTRequestHandler.java:149) 在 org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:95) 在 org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71) 在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:303) 在 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:92) 在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 在 org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:337) 在 org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:383) 在 org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) 在 org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) 原因:org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityException:访问后端服务以进行 API 密钥验证时出错 在 org.wso2.carbon.apimgt.gateway.handlers.security.keys.APIKeyValidatorClient.getAllURITemplates(APIKeyValidatorClient.java:189) 在 org.wso2.carbon.apimgt.gateway.handlers.security.keys.WSAPIKeyDataStore.getAllURITemplates(WSAPIKeyDataStore.java:75) ... 21 更多 引起:java.lang.NullPointerException 在 org.wso2.carbon.apimgt.gateway.handlers.security.keys.APIKeyValidatorClient.getAllURITemplates(APIKeyValidatorClient.java:183) ... 22 更多
任何帮助将不胜感激。
【问题讨论】:
-
在身份服务器端查看日志。你也许能得到一些想法。