Java:如何从 IE 浏览器访问 Window 凭据
如何检索当前登录的 Windows 用户在 java 中访问我的 Web 应用程序的凭据
从独立应用程序中,我可以使用以下命令访问已登录窗口用户的用户 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 访问网站,它会自动登录,但我使用其他浏览器,然后出现登录框弹出。知道如何实现这一目标吗,谢谢?
我的 Web 应用程序是使用 JSF 和 Tomcat 7 编写的。
How can I retrieve the credentials for the currently logged-in Windows user that accessing my web application in java
From a standalone application, I can access the user id of a logged-in window user using
com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
However, this will not work for web app, since it will always print out the id of the user that running Tomcat, not the id of the user who accessing the web application
I see this being done before, that if I access a website via IE, it automatically log me in, but I use other browser, then a log-in box pop out. Any idea how to achieve this, thank you?
My web app is written in JSF with Tomcat 7.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用一个可以接收 IE 将发送的 Kerberos 令牌的库(假设它配置了集成 Windows 身份验证)。
有多种方法/库可以执行此操作,Apache 的 Tomcat 站点上对此有详细记录。在这里: http://tomcat.apache.org/tomcat -7.0-doc/windows-auth-howto.html
You need to use a library that can receive the Kerberos token that IE will sent (assuming that it is configured with Integrated Windows Authentication).
There are multiple approaches/libraries to doing this, which are well documented on Apache's site for Tomcat. Here you go: http://tomcat.apache.org/tomcat-7.0-doc/windows-auth-howto.html
您有一些不同的选择来实现这一目标。 Tomcat 在其主页上提供了一些建议。我使用了 IIS 前端和 spring-security kerberos 扩展,它们工作得很好。
You have some different options to achieve this. Tomcat has some suggestions on their homepage. I've used both IIS fronting and the spring-security kerberos extension and they work just fine.