JavaWebApp提供域用户鉴权的方法

来源:互联网 发布:卖家如何注册爱淘宝 编辑:程序博客网 时间:2024/05/16 17:49
思考了一下,有两种方法,
一种是使用LDAP访问域服务器(389端口)进行用户校验
另一种方法是使用samba组织的jcifs使用NTLM方式进行校验

第一种方法暂时不提,下面着重说一下第二种方法
----------------------------------------------------------
NTLM校验又分为两种,一种是使用共享目录的方式进行校验,如下
 <filter>  
        <filter-name>NtlmHttpFilter</filter-name>  
        <filter-class>jcifs.http.NtlmHttpFilter</filter-class>  
    
        <init-param>  
               <param-name>jcifs.http.domainController</param-name>  
               <param-value>192.168.2.15</param-value>  
        </init-param>  
        <init-param>  
               <param-name>jcifs.smb.client.logonShare</param-name>  
               <param-value>JCIFSACL</param-value>  
        </init-param>  
  </filter>  
    
  <filter-mapping>  
        <filter-name>NtlmHttpFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
 </filter-mapping>
这种方法是通过虚拟一个名为:JCIFS***_&&_%%的用户来访问认证计算机进行认证的。其中***表示当前tomcat计算机的IP的第一位,&&表示最后一位,%%是一个序列数  
----------------------------------------------------------
另一种是通过域控制器进行校验,由于手头没有域控制器,暂时无法验证这种方式的正确性
<filter>  
        <filter-name>NtlmHttpFilter</filter-name>  
        <filter-class>jcifs.http.NtlmHttpFilter</filter-class>  
    
        <init-param>  
               <param-name>jcifs.smb.client.domain</param-name>  
               <param-value>NYC-USERS</param-value>  
        </init-param>  
        <init-param>  
               <param-name>jcifs.netbios.wins</param-name>  
               <param-value>10.169.10.77,10.169.10.66</param-value>  
        </init-param>  
  </filter>  
    
  <filter-mapping>  
        <filter-name>NtlmHttpFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
 </filter-mapping>
jcifs.smb.client.domain应该指的是域名,而jcifs.netbios.wins就应该是相应的Wins服务器了,一般来说这里填写域控制器的IP