ESB WSO2 - 使用 OAuth 基础安全令牌对 API 应用安全性

问题描述

我正在使用本指南为 WSO2 集成器上的 API 应用安全性:https://docs.wso2.com/display/EI660/Applying+Security+to+an+API+#ApplyingSecuritytoanAPI-UsinganOAuthbasesecuritytoken

我在身份服务器上创建了一个应用程序,并通过邮递员调用了 https://localhost:9443/oauth2/token 并获得了访问令牌。但是当我想在这个 url http://172.16.148.75:8281/weatherforecast调用我的 esb api 时,身份服务器集成器会抛出一个包含以下内容的异常:

[2021-01-11 12:38:59,971] ERROR {org.wso2.handler.SimpleOauthHandler} - Error occurred while processing the message org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://dto.oauth2.identity.carbon.wso2.org/xsd}tokenBinding
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub.fromOM(OAuth2TokenValidationServiceStub.java:1247)
    at org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub.validate(OAuth2TokenValidationServiceStub.java:746)
    at org.wso2.handler.SimpleOauthHandler.handleRequest(SimpleOauthHandler.java:63)
    at org.apache.synapse.rest.API.process(API.java:367)
    at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:135)
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:113)
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:327)
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:98)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:368)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:189)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748) 
Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://dto.oauth2.identity.carbon.wso2.org/xsd}tokenBinding
    at org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO$Factory.parse(OAuth2TokenValidationResponseDTO.java:1008)
    at org.wso2.carbon.identity.oauth2.stub.types.axis2.ValidateResponse$Factory.parse(ValidateResponse.java:417)
    at org.wso2.carbon.identity.oauth2.stub.OAuth2TokenValidationServiceStub.fromOM(OAuth2TokenValidationServiceStub.java:1241)
    ... 15 more 
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement {http://dto.oauth2.identity.carbon.wso2.org/xsd}tokenBinding
    at org.wso2.carbon.identity.oauth2.stub.dto.OAuth2TokenValidationResponseDTO$Factory.parse(OAuth2TokenValidationResponseDTO.java:1002)
    ... 17 more

我是dotnet开发者,对java不熟悉,所以不知道org.wso2.handler.SimpleOauthHandler为什么会出现这个异常。大家能不能帮我一个忙,帮我解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)