【发布时间】:2010-12-02 22:13:35
【问题描述】:
我们已成功使用 GData 库访问用户的 Google 文档。但是当很多用户同时或先后登录我们的网站并授权我们的网络应用时,我们遇到了问题。
发生了什么:
第一个用户成功登录,通过 OAuth 授权我们的网络应用,并能够添加评分标准(或谷歌电子表格)。
第二个用户,在第一个用户添加规则后,立即成功登录,然后 webapp 授权失败(未给出令牌。我试图记录它。)
第三个用户登录失败。
第四个用户能够登录,通过 OAuth 授权,并成功创建评分表。
第五个用户能够登录,但与第二个用户一样,在授权时获得了无效令牌(令牌未给出。)
名单还在继续。结果是不可预测的。
下面是我们在失败场景发生时得到的堆栈跟踪的摘录:
Nested in org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException:
java.lang.NullPointerException
at com.google.gdata.client.authn.oauth.OAuthUtil.normalizeParameters(OAuthUtil.java:158)
at com.google.gdata.client.authn.oauth.OAuthUtil.getSignatureBaseString(OAuthUtil.java:81)
at com.google.gdata.client.authn.oauth.OAuthHelper.addCommonRequestParameters(OAuthHelper.java:649)
at com.google.gdata.client.authn.oauth.OAuthHelper.getOAuthUrl(OAuthHelper.java:592)
at com.google.gdata.client.authn.oauth.OAuthHelper.getUnauthorizedRequestToken(OAuthHelper.java:276)
at com.projectrix.controller.OAuthController.authorize(OAuthController.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Method.java:40)
救命!
【问题讨论】:
标签: java oauth gdata-api google-docs