Tomcat 6 - 通过带有加密密码的活动目录进行身份验证

时间:2013-09-05 14:24:00

标签: authentication tomcat encryption active-directory digest

我正在尝试使用活动目录用户连接到tomcat。 当密码是纯文本时,如下所示:

<Realm className="org.apache.catalina.realm.JNDIRealm"   
connectionURL="ldap://localhost:389"     
connectionName="user_name" 
connectionPassword="password"       
userBase="OU=blabla,DC=aaa,DC=com"       
userSubtree="true"      
userSearch="(sAMAccountName={0})"   
userRoleName="memberOf" 
roleBase="OU=blabla,DC=aaa,DC=com"   
roleName="cn"    
roleSubtree="true"         
roleSearch="(member={0})"        />

验证正常。但是,我不想在配置文件中输入密码。

我尝试了以下内容:

<Realm className="org.apache.catalina.realm.JNDIRealm"   
connectionURL="ldap://localhost:389"    
digest="MD5" 
connectionName="user_name"  
connectionPassword="encrypted_password"        
userBase="OU=blabla,DC=aaa,DC=com"       
userSubtree="true"      
userSearch="(sAMAccountName={0})"  
userRoleName="memberOf"
roleBase="OU=blabla,DC=aaa,DC=com"   
roleName="cn"   
roleSubtree="true"       
roleSearch="(member={0})"        /> 

但身份验证失败 我没有找到任何解决方案。 我真的很感激任何帮助

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您唯一的选择是继承JNDIRealm并创建一个具有某种加密连接密码的新属性。密码不能被散列(例如,如你指定的MD5),因为散列是单向的 - 没有撤消散列 - 并且Tomcat需要原始未散列形式的密码来验证AD安装。

如果在JNDIRealm子类中使用可逆加密,那么当Tomcat需要密码时,您可以解密密码并将其传递。