【问题标题】:Problems with GData Request TokenGData 请求令牌的问题
【发布时间】: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


    【解决方案1】:

    很难从中分辨出来,但我的直觉是某处存在并发错误,并且用于 OAuth 的某些对象不是线程安全的,正在多个请求处理线程中使用。

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 2012-09-29
      • 2016-11-04
      • 2013-10-06
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多