从Java服务器获取登录用户的NT ID

时间:2013-04-25 07:37:48

标签: java spring

我将在服务器中托管我的应用程序。我只想获取登录我的应用程序的用户的NT ID。如果有人回答,请分享?

system.getremoteUser()system.getProperty将返回托管计算机名称。

1 个答案:

答案 0 :(得分:1)

如果您具体关于Java中的NT ID提取,这可能有效

com.sun.security.auth.module.NTSystem NTSystem = new
            com.sun.security.auth.module.NTSystem();
    System.out.println(NTSystem.getName());
    System.out.println(NTSystem.getDomain());
    System.out.println(NTSystem.getUserSID());

但对于具有NTLM身份验证的Web应用程序上下文,您应该将NTLM(Windows)用户作为您的应用程序用户(这是一般情况)。

在通过NTLM对用户进行身份验证时,最好在上下文中查询NTLMRealm(在Tomcat中)或存储用户身份(SID等)(这可以是基于会话或特定的自定义服务器端实现)。现在使用此上下文来检索登录的用户(SID,GroupID等)的NTLM属性。