我下载并安装了WSOAM 1.10二进制文件,并按照https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0步骤进行分布式部署。进入"我的订阅"商店中的标签,我无法为我订阅的API重新生成密钥并收到HTTP 400错误。关键经理日志显示:
TID: [-1234] [] [2017-03-07 20:26:14,730] ERROR {org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint} - Error while creating the Carbon OAuth token request {org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint}
OAuthProblemException{error='invalid_request', description='Missing grant_type parameter value', uri='null', state='null', scope='null', redirectUri='null', responseStatus=0, parameters={}}
at org.apache.oltu.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:59)
at org.apache.oltu.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:167)
...
I get the same if I use a curl command:
curl -k -v -d "token=224cd22cd6b4ee622d951c69be34f633&grant_type=client_credentials" -H "Authorization: Basic eG9HSnZDS3FYNVNSazV6N3FHZXhhR3VTSWVnYTpzUTQ0QlBmTXRacG1ZNnA3ZUdPejhONVZxMGdh" -H "Content-Type: application/x-www-form-urlencoded" http:GATEWAY_HOST/revoke
看起来撤销API调用缺少" grant_type"参数。文档是否正确? :https://docs.wso2.com/display/AM1100/Token+API
答案 0 :(得分:0)
这个文件是正确的。以下是生成令牌并撤消令牌的示例命令。
curl -k -d“grant_type = client_credentials”-H“授权:基本 dkFGR0pLQWliMDVrUW5fX2JJZFgzS1pEaGZvYTo2NDFGWlNtSVJ2anVIU0ozcTYzbHVENXU0Mllh” http://localhost:8280/token
curl -k -v -d“token = 77ed4636c08c80fefb6f7aa1ce6987e0”-H “授权:基本 dkFGR0pLQWliMDVrUW5fX2JJZFgzS1pEaGZvYTo2NDFGWlNtSVJ2anVIU0ozcTYzbHVENXU0Mllh” -H“Content-Type:application / x-www-form-urlencoded”http://localhost:8280/token
根据堆栈跟踪,当您尝试撤消令牌时,调用将转到令牌端点,该端点需要授权类型才能生成令牌。请检查synapse中的默认API(wso2am-1.10.0 / repository / deployment / server / synapse-configs / default / api)以验证端点是否正确。