0

我正在尝试为 Google Drive 实施身份验证:

https://google-developers.appspot.com/drive/auth/web-server

第一,用户被重定向到谷歌登录页面进行身份验证时并不明显。他们似乎没有展示那部分。

第二,它不显示回调代码。我想我可以解决这个问题,并且需要添加一个新的 servlet 或服务或入口点,但使用 GWT 可能会很棘手。

第三,也是最重要的,即使该类存在并且可以正常编译,我也会不断收到 ClassNotFoundException。

Caused by: java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer
    at com.onix.sdm.server.SDMServiceImpl.loginServer(SDMServiceImpl.java:37)
    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(Unknown Source)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
    ... 40 more
Caused by: java.lang.ClassNotFoundException: com.google.api.client.http.HttpRequestInitializer
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:215)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 47 more

它正在这条线上死去:

37      DriveAuthentication da = new DriveAuthentication(); // Same as MyClass

那么如何将 Google Oauth2 添加到 GWT 中呢?

4

1 回答 1

2

GWT 是一种客户端技术,但您发布的链接是用于服务器身份验证的。所以第一步是决定你要使用哪种方法。

如果您想要服务器身份验证,那么您发布的链接是正确的,GWT 将对此一无所知。您的 GWT 应用程序将使用 RPC/REST 等调用您的服务器,并且您的服务器将执行 Drive 访问。

另一方面,如果您想进行客户端身份验证,那么您将需要此链接https://developers.google.com/accounts/docs/OAuth2UserAgent,它描述了您需要发布到的 URL。我的建议是远离图书馆,自己理解和发送原始 URL。

于 2013-10-02T19:00:40.437 回答