Java:如何从IE浏览器访问窗口凭证

我如何检索当前login的Windows用户访问我的Web应用程序在Java中的凭据

从独立的应用程序,我可以使用访问已login的窗口用户的用户ID

com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem(); System.out.println(NTSystem.getName()); 

但是,这不适用于Web应用程序,因为它将始终打印出运行Tomcat的用户的ID,而不是访问Web应用程序的用户的ID

我之前看到这样做,如果我通过IE访问一个网站,它会自动login我,但我使用其他浏览器,然后popup一个login框。 任何想法如何实现这一点,谢谢?

我的Web应用程序是用Tomcat 7以JSF编写的。

您需要使用可以接收IE将发送的Kerberos标记的库(假定它已经配置了集成Windows身份验证)。

有多种方法/库可以做到这一点,这些方法/库在Apache的Tomcat站点上有详细记录。 这里你去: http : //tomcat.apache.org/tomcat-7.0-doc/windows-auth-howto.html

你有一些不同的选择来实现这一点。 Tomcat在他们的主页上有一些建议。 我使用了IIS前端和spring-security kerberos扩展,它们工作得很好。