如何检索在java中访问我的Web应用程序的当前登录Windows用户的凭据
从独立应用程序,我可以使用
访问登录窗口用户的用户IDcom.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
但是,这不适用于Web应用程序,因为它将始终打印出运行Tomcat的用户的id,而不是访问Web应用程序的用户的id
我之前看到过这个,如果我通过IE访问网站,它会自动登录我,但我使用其他浏览器,然后弹出一个登录框。知道怎么做到这一点,谢谢?
我的网络应用程序是使用Tomcat 7在JSF中编写的。
答案 0 :(得分:1)
您需要使用可以接收IE将发送的Kerberos令牌的库(假设它配置了集成Windows身份验证)。
这样做有多种方法/库,在Apache的Tomcat站点上有详细记录。在这里:http://tomcat.apache.org/tomcat-7.0-doc/windows-auth-howto.html
答案 1 :(得分:1)
您有一些不同的选择来实现这一目标。 Tomcat对他们的homepage有一些建议。我已经使用了IIS前端和弹簧安全性kerberos扩展,它们工作得很好。