java - 使用 Java Web 应用程序检测登录计算机的用户

标签 java tomcat active-directory

我想开发一个 Java 应用程序来检测登录 Windows 域的用户。这些凭据将用于登录在 Tomcat 上运行的 Java 应用程序。

我该怎么做?我想知道访问我的网络应用程序的远程用户。此用户已在 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() 获取远程用户。

再见。

关于java - 使用 Java Web 应用程序检测登录计算机的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726249/

相关文章:

Java 记录除一个之外的所有记录

java - 如何使用 Spring Boot 2.1.1 从外部文件夹获取 "display"文件

java - 为什么我无法使用我的对象的副本从该映射中 get() ?

Grails spring-security-ldap插件更改AD的用户密码

c# - 从 DN 获取用户信息

java - 无法导入 android 支持 IntelliJ 项目

java - tomcat启动时,通常只允许每个套接字地址(协议(protocol)/网络地址/端口)使用一次?

spring-boot - 在docker容器内的外部tomcat上运行spring boot时出错

java - Spring MVC Tomcat 编码 UTF-8

c# - 密码过期时如何在事件目录中更改密码