java - WSO2 IS OAuth2 资源所有者密码 - 获取访问 token

标签 java oauth-2.0 passwords wso2 wso2-identity-server

我正在尝试从 WSO2 身份服务器获取 oauth token :

curl -v  -X POST -u "GIHAZzRMGNnm3X8XGMwZVoCe2hUa:Uf4wAlQWufaTk320Se2emnJVgvca" -H  "Content-Type: application/x-www-form-urlencoded" -k -d "grant_type=password&username=myemail@shan.com&password=mypwd" https://localhost:9449/oauth2/token

响应是 {"error":"server_error","error_description":"颁发访问 token 时出错"}

服务器端异常

TID[-1234] [IS] [2015-08-08 11:53:15,692] ERROR {org.wso2.carbon.identity.oauth2.OAuth2Service} - Error when issuing the access token. org.wso2.carbon.identity.oauth2.token.handlers.grant.AbstractAuthorizationGrantHandler.issue(AbstractAuthorizationGrantHandler.java:207) org.wso2.carbon.identity.oauth2.token.AccessTokenIssuer.issue(AccessTokenIssuer.java:206) org.wso2.carbon.identity.oauth2.OAuth2Service.issueAccessToken(OAuth2Service.java:177) org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint.getAccessToken(OAuth2TokenEndpoint.java:230) org.wso2.carbon.identity.oauth.endpoint.token.OAuth2TokenEndpoint.issueAccessToken(OAuth2TokenEndpoint.java:108) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)

在 IS 中,我启用了所有授权类型,隐式和客户端凭据经过测试可以正常工作。此错误仅发生在“密码”授予类型中。有人可以让我知道我做错了什么吗?

最佳答案

请使用此格式生成密码授予类型的 token 。

curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic <Base64Encoded(Consumer key:consumer secret)>, Content-Type: application/x-www-form-urlencoded" https://<host>:8243/token

关于java - WSO2 IS OAuth2 资源所有者密码 - 获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31895951/

相关文章:

java - 改造请求中如何设置界面参数

oauth-2.0 - Apache Syncope 与 OAuth 2

java - 以编程方式关闭 jetty 客户端

spring - 如何在Spring的REST Api中的rest调用中发送密码字符串?

java - 在 Android 中翻译短信正文

java - 如何删除Java中特定字符之前的所有字符?

java - messageArrived 方法出现异常时 MQTT 重试

javascript - Google OAuth2 - 交换 token 的访问代码 - 不起作用

linux - popen密码更改linux

ios - 在 iOS 中用于密码验证的 UITextfield 输入中的密码验证