在JSF2应用程序(Glassfish)中检索登录的Windows用户(ActiveDir)

时间:2013-04-16 08:53:47

标签: java-ee active-directory glassfish single-sign-on

我目前无法找到用于在我的应用程序中获取当前已登录用户的登录名的最新/标准解决方案。通过登录,我的意思是在使用applciation的客户端上登录的(Windows)-Username。它只能在Intranet环境中运行。

我正在使用Windows Server环境,使用Glassfish部署我的JSF2-Application。

到目前为止,我发现了关于WAFFLE,jCIFS和SPNEGO的建议。所有我都能找到有关WAFFLE和Glassfish的信息,似乎是out of datecan't be found anymore。我刚刚搜索错误或者是否真的没有“教程”如何配置与Glassfish一起使用的WAFFLE? jCIFS,据我所知,不再支持。 SPNEGO有一个Glassfish的教程,但说实话,我无法遵循它,并且无法重新制定所有步骤。显然,关于认证机制的一些背景知识 - 我没有 - 会有所帮助。

所以现在我希望,因为我发现关于这个主题的大多数信息至少已有1.5年的历史,从那以后出现了一些新问题来解决我的问题。如果没有,那么你的建议是什么?由于我已经编写了一些PHP-Apps(在Apache上运行)之前我能够通过REMOTE_USER服务器变量获取用户名,我想通过Apache调用我的JSF-App并以这种方式传递用户名。这可能也是一种选择吗?当然,如果我有选择的话,我更喜欢JavaEE-Solution ......

提前致谢

2 个答案:

答案 0 :(得分:0)

获取当前登录的用户:

System.getProperty("user.name"); 

答案 1 :(得分:0)

对于Java EE,请获取登录用户:

  • 在EL:#{request.remoteUser}
  • 使用JSF API:FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
  • 来自HttpServletRequest:getUserPrincipal()getRemoteUser()
  • 使用注入:@Inject Principal principal;