Java GWT中的getAuthDomain()总是返回gmail.com

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(

我正在用GoogleWebToolkit编写一个应用程序,并试图找出当前登录用户的GoogleApps域

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()然后返回该公司唯一的主域,尽管我很确定它将始终返回用户电子邮件的域(如果有效)。是的,也许解析电子邮件是最好的解决方案,是的。