我想开发一个Java应用程序,它可以检测Windows域上登录的用户。这些凭证将用于登录在Tomcat上运行的Java应用程序。
我怎样才能做到这一点?我想知道远程用户正在访问我的Web应用程序。该用户已在Active Directory中登录。
这是我的解决方案:
将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()获取远程用户。
再见。