2012-01-30 2 views
1

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

То, что я пытаюсь сделать, это:

Запрос клиенту что GET на URL с Android. AppEngine возвращает XML в зависимости от пользователя, делающего запрос.

Я использую AERC library от Tim Bray для аутентификации с использованием токена, который предоставляет андроид.

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(), потому что я не знаю, какой метод, который должен работать , Оба возвращают null.

Что я делаю неправильно?

Thanks

ответ

0

Решено. я должен был добавить контрсилы безопасности на 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

Смежные вопросы