Java GWT中的getAuthDomain()总是返回gmail.com
我正在用GoogleWebToolkit编写一个应用程序,并试图找出当前登录用户的GoogleApps域Java GWT中的getAuthDomain()总是返回gmail.com,java,gwt,google-apps,Java,Gwt,Google Apps,我正在用GoogleWebToolkit编写一个应用程序,并试图找出当前登录用户的GoogleApps域 public LoginInfo login(String requestUri) { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); LoginInfo loginInfo = new LoginInfo(
public LoginInfo login(String requestUri) {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
LoginInfo loginInfo = new LoginInfo();
if (user != null) {
loginInfo.setLoggedIn(true);
loginInfo.setEmailAddress(user.getEmail());
loginInfo.setNickname(user.getNickname());
loginInfo.setAuthDomain(user.getAuthDomain());
loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
loginInfo.setIsAdmin(userService.isUserAdmin());
} else {
loginInfo.setLoggedIn(false);
loginInfo.setLoginUrl(userService.createLoginURL(requestUri));
}
return loginInfo;
}
但是user.getAuthDomain()总是返回“gmail.com”
这对于非谷歌应用程序用户来说应该是正确的。但当我使用我的谷歌应用程序帐户登录时,它也会返回gmail.com
你知道为什么吗?或者是否有其他方法获取用户当前的域?我将使用该方法访问主机页的基本URL,并从中解析域名。这将解决您的问题:
`String domain=ApiProxy.getCurrentEnvironment().getAttributes().get("com.google.appengine.api.users.UserService.user_organization").toString();`
不幸的是,这没有多大帮助。我正在写一个GMail小工具,当把这个小工具添加到谷歌时,谷歌通过一个代理运行代码,所以我用上面的函数得到的URL是,而不是加载小工具的域。哎哟,没有想到代理。。。我想你必须使用AppEngine API来解决这个问题。我不是专家,但是你不能从用户的电子邮件(user.getEmail())解析域吗?或者这些也是分开的?我们在上一家公司使用谷歌应用程序,我的电子邮件地址是eneveu@companydomain.comThis这确实是一个解决方案,尽管我不确定这是否总是同一个域。可能有一些公司正在为一个应用程序帐户设置多个域。我希望user.getAuthDomain()然后返回该公司唯一的主域,尽管我很确定它将始终返回用户电子邮件的域(如果有效)。是的,也许解析电子邮件是最好的解决方案,是的。