Как получить пользователя, который запрашивает страницу - PullRequest
1 голос
/ 30 января 2012

Я пытался получить электронную почту человека, который отправляет GET в AppEngine, в течение нескольких часов, но я не могу заставить это работать.

Я пытаюсь сделать следующее:

Клиент запрашивает GET для URL с Android. AppEngine возвращает XML в зависимости от пользователя, сделавшего запрос.

Я использую библиотеку AERC из Тим Брей для аутентификации с использованием токена, который предоставляет Android.

public void run() {
        if(client == null){
            final AccountManager mgr = AccountManager.get(mActivity);
            Account[] accts = mgr.getAccountsByType("com.google");
            client = new AppEngineClient(APP_URI, accts[0], mActivity);
        }
        Log.i(tag, "Respuesta de auth: "+new String(client.get(AUTH_URI, null).body));
    }

На стороне сервера у меня есть это:

UserService userService = UserServiceFactory.getUserService();

        if (userService.getCurrentUser() != null) {
            ret = "<tag>User userSErvice: "+userService.getCurrentUser() + "</tag>";
        }else{
            ret = "<tag>User userSErvice: null</tag>";
        }
        if (request.getUserPrincipal() != null) {
            ret += "<tag>User request: "+request.getUserPrincipal() + "</tag>";
        }else{
            ret += "<tag>User request: null</tag>";
        }

Я использую userService.getCurrentUser () и request.getUserPrincipal (), потому что я не знаю, какой метод должен работать. Оба возвращают ноль.

Что я делаю не так?

Спасибо

1 Ответ

0 голосов
/ 31 января 2012

решаемая.Мне пришлось добавить ограничения безопасности в web.xml следующим образом:

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

И вы должны запросить https, чтобы получить пользователя из appengine

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