Java - 如何获取操作系统登录用户名(来自域)?

5 java windows authentication tomcat

我需要一些以下方案的帮助.

  1. 想象一下,最终用户会收到一封电子邮件(在其桌面上),其中包含指向Web应用程序的链接.那个应用程序我用Java构建,它运行在另一台专用机器上的Tomcat servlet之上.用户登录的工作站对域控制器(活动目录)进行身份验证.

  2. 我已经看到许多商业应用程序也运行在tomcat之上,并以某种方式将自己绑定到Microsoft IIS/AD,因此当最终用户访问他们的应用程序时,他们可以获得域用户登录和单点登录他们进入那个构建的Java应用程序 长话短说,我也要做同样的事情

但从哪里开始?我所知道的是,目前我无法这样做,因为

System.getProperty( "user.name"); 因为它获取了针对应用程序的用户,因此无法正常工作.但现在情况并非如此.我需要的是获得操作系统的auth用户

  • 那么我应该将我的Java绑定到Tomcat并让我的最后一个绑定到IIS/AD吗?
  • 或者不知怎的,我可以让我的Java应用程序直接绑定到IIS并获得该操作系统登录用户?

非常感谢,Bruno Oliveira

Kar*_*gam 0

您在上面问题中提到的场景称为“单点登录

仅使用 Web 应用程序无法获取桌面上登录的用户信息。

要实现单点登录,您需要三个组件,即 Active Directory、单点登录组件和 Web 应用程序

希望您可以参考IBM开发者作品这篇文章自行实现。除此之外,市场上还有许多工具和商业组件,我希望这会对您有所帮助......!