使用Java Web应用程序检测用户是否登录计算机

8

我希望开发一个Java应用程序,可以检测Windows域上的用户登录。这些凭证将用于登录运行在Tomcat上的Java应用程序。

我该如何做到这一点?我想知道访问我的Web应用程序的远程用户。此用户已登录Active Directory。


这与https://dev59.com/ZkfRa4cB1Zd3GeqP6iOJ有何不同? - Michael Myers
也许我表达问题的方式不太对。之前的解决方案在Java Web应用程序上无法工作。 - VansFannel
也许这就是你要找的?https://dev59.com/zHRC5IYBdhLWcg3wAcQ3 - Steve Reed
4个回答

5
这是我的解决方案: 将jcifs-1.2.7.jar放置在[TOMCAT_HOME]/common/lib目录下。 修改应用程序的web.xml,在webapp部分中添加以下文本:
<filter>
    <filter-name>NtlmHttpFilter</filter-name>
    <filter-class>jcifs.http.NtlmHttpFilter</filter-class>
    <init-param>
        <param-name>jcifs.http.domainController</param-name>
        <param-value>xx.xx.xx.xxx</param-value>  --> Domain Controller IP
    </init-param>
    <init-param>
        <param-name>jcifs.util.loglevel</param-name>
        <param-value>2</param-value>
    </init-param>
  </filter>
  <filter-mapping>
       <filter-name>NtlmHttpFilter</filter-name>
       <url-pattern>/*</url-pattern>
  </filter-mapping>

同时,您可以使用request.getRemoteUser()获取远程用户信息,无需提示。

再见。


2
JCIFS 的这个功能已被弃用。请查看 NTLM HTTP 认证页面顶部的蓝色文本,了解说明和推荐的替代方法:http://jcifs.samba.org/src/docs/ntlmhttpauth.html。 - user8134
1
@ioplex,那段蓝色文本没有提到Jespa的许可证与JCIFS的许可证不同。如果您是JCIFS Mike,也许您可以修复一下? - Thorbjørn Ravn Andersen

1

我想知道访问我的Web应用程序的远程用户。该用户已登录活动目录。 - VansFannel

0

Jcifs 库肯定会对您有所帮助。该库可用于执行NTLM身份验证。


-1

我记得几年前我使用mod_ntlm为Apache解决了这个问题,但是自那以后可能发生了一些变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接