如何获取请求页面的用户

时间:2012-01-30 13:37:14

标签: android google-app-engine

我一直试图将发送GET的人的电子邮件发送到AppEngine几个小时我无法正常工作。

我要做的是:

客户端向Android请求GET到URL。 AppEngine根据发出请求的用户返回XML。

我正在使用AERC library中的Tim Bray来使用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(),因为我不知道哪个方法必须工作。两者都返回null。

我做错了什么?

由于

1 个答案:

答案 0 :(得分: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

获取用户