找不到Java GAE Oauth2登录页面

时间:2012-03-30 09:03:01

标签: java google-app-engine oauth-2.0

我们正在尝试使用Oauth2登录我们的应用程序和Google文档,但遇到了很多麻烦。

部署后,未登录的用户将重定向到Url:  http://----.appspot.com/_ah/login_required?continue=http://------.appspot.com/oauth2

但该页面给出了错误:NOT_FOUND

我们已遵循此Google App Engine应用示例http://code.google.com/p/google-api-java-client/wiki/OAuth2,doGet如下所示:

        try {
        redirectUri = getRedirectUri(request);
        response.sendRedirect(initializeFlow().newAuthorizationUrl().setRedirectUri(redirectUri).build());
    } catch (ServletException e) {
        Log.info("Redirect Error "+e.getLocalizedMessage());
        e.printStackTrace();
    }

我们在web.xml中的安全限制:

  <security-constraint>
    <web-resource-collection>
        <url-pattern>/oauth2</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>

我们也无法访问Google Docs API。 在devmode中,我们在请求权限时以及单击“允许访问”按钮后出现此错误:

HTTP错误404

访问/oauth2callback%3Fgwt.codesvr=127.0.0.1:9997时出现问题。原因是:

NOT_FOUND

这就是URL的样子:

http // 127.0.0.1:8888/oauth2callback%3Fgwt.codesvr=127.0.0.1:9997?code=4/g_fjsddhegiko4eifsdkl

getRedirectUri方法i Oauth2

    protected String getRedirectUri(HttpServletRequest req) throws ServletException, IOException {
    GenericUrl url = new GenericUrl(req.getRequestURL().toString());
    String URL = "/oauth2callback";
    if(req.getRequestURL().toString().contains("http://127.0.0.1:8888")) {
        URL += Global.getLocalcodesvr();
    }
    url.setRawPath(URL);
    return url.build();
}

我们已经注册了我们的应用以及devmode和部署所需的回调网址。 我们已经花了几天时间试图解决这些问题。

0 个答案:

没有答案