Страница входа Java GAE Oauth2 не найдена - PullRequest
0 голосов
/ 30 марта 2012

Мы пытаемся использовать Oauth2 для входа в наше приложение и в Документы Google, но у нас много проблем.

При развертывании незарегистрированный пользователь перенаправляет на URL: HTTP: //----.appspot.com/_ah/login_required продолжить = 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>

У нас также проблемы с доступом к API Документов Google. В 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 в 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();
}

Мы зарегистрировали наше приложение и URL-адреса обратных вызовов, необходимые как для devmode, так и для развернутых. Мы уже потратили несколько дней на их решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...