android应用程序使用OAuth2连接到'sparklr'J2EE应用程序

时间:2011-11-22 14:25:05

标签: android spring java-ee oauth oauth-2.0

我正在尝试创建OAuth 2.0提供程序和能够使用OAuth 2.0连接到提供程序的Android应用程序。我有以下设置:

一个tomcat服务器,其中包含来自springsource的名为'sparklr'的J2EE示例OAuth 2.0提供程序。当我使用'Tonr'示例进行测试时,它的效果非常好。 现在我想要一个与示例Tonr应用程序大致相同的Android应用程序。使用OAuth 2.0从sparklr应用程序访问照片资源

但是我被卡住了。我正在使用已被移动到apache琥珀色的leeloo库。确切地说,我正在使用以下教程:http://simpleprogrammer.com/2011/05/25/oauth-and-rest-in-android-part-1/

该应用程序的第一个fase工作。浏览器启动,我得到sparklr页面登录并授权请求。 但是当我尝试获取访问令牌时,应用程序崩溃了。我没有从logcat中获得任何更好的知识,因此我使用debug来获取请求。以下代码构建请求:

request = OAuthClientRequest.tokenLocation("http://10.106.0.16:8084/sparklr/oauth/token")
                .setGrantType(GrantType.AUTHORIZATION_CODE)
               .setClientId("tonr")
                .setClientSecret("secret")
                .setRedirectURI("MyOAuth2POC://oauthresponse")
                .setCode(code)
                .setScope("trust")
                            .buildBodyMessage();

我得到了我的网址:http://10.106.0.16:8084/sparklr/oauth/token?scope=read&code=iCMZPE&client_secret=secret&client_id=tonr&grant_type=authorization_code&redirect_uri=MyOAuth2POC%3A%2F%2Foauthresponse

所有参数都在那里,看起来对我来说是正确的。但我得到以下输出:

  

{“error”:“invalid_grant”,“error_description”:“无效   授权码:MASCID“}

因此,scope参数明显出现问题。我试图将它设置为'信任'而不是'读'但没有不同的结果。我是否需要在sparklr应用程序中更改某些内容?或者我在Android应用程序上做错了什么,以及什么?

希望有人可以提供帮助。

THX!

1 个答案:

答案 0 :(得分:0)

问题不在我的网址中,而是在我的请求令牌的网址中获取访问令牌。

我没有在那里指定范围。

我将参数添加到我的网址以进行授权,如下所示:http://.../sparklr/oauth/authorize?scope=read&response_type=code

现在确实有效。

我看错了地方..