我一直试图将发送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。
我做错了什么?
由于
答案 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
获取用户