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

时间:2010-10-11 07:20:02

标签: java gwt google-apps

我正在使用Google Web Toolkit编写应用程序,并且正在尝试找出当前登录用户的Google Apps域。

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。

任何想法为什么?或者是否有其他方法可以让用户获得当前域名?

2 个答案:

答案 0 :(得分:2)

我会使用GWT.getHostPageBaseUrl()来访问主机页面的基本URL,并从中解析域名。

答案 1 :(得分:0)

这将解决你的问题:

`String domain=ApiProxy.getCurrentEnvironment().getAttributes().get("com.google.appengine.api.users.UserService.user_organization").toString();`