0

我目前无法找出在我的应用程序中获取当前登录用户的登录名的最先进/标准解决方案。通过登录,我的意思是在使用应用程序的客户端上登录的 (Windows)-用户名。它将仅在 Intranet 环境中运行。

我正在使用 Windows Server 环境,使用 Glassfish 部署我的 JSF2 应用程序。

到目前为止,我发现的是关于 WAFFLE、jCIFS 和 SPNEGO 的建议。我能找到的关于 WAFFLE 和 Glassfish 的所有信息似乎要么已经过时,要么再也找不到了。我只是搜索错误还是真的没有“教程”如何配置 WAFFLE 以与 Glassfish 一起使用?jCIFS,据我所知,不再支持。SPNEGO 有一个 Glassfish 教程,但老实说,我无法按照它进行操作,也无法重现所有步骤。显然,一些关于身份验证机制的背景知识——我没有——会有所帮助。

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

提前致谢

4

2 回答 2

0

获取当前登录的用户:

System.getProperty("user.name"); 
于 2013-04-16T12:37:09.713 回答
0

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

  • 在 EL:#{request.remoteUser}
  • 使用 JSF API:FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
  • 从 HttpServletRequest:getUserPrincipal()getRemoteUser()
  • 使用注入:@Inject Principal principal;
于 2013-04-16T12:40:01.943 回答