1

我正在尝试使用活动目录用户连接到 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})"        /> 

但身份验证失败。
我没有找到任何解决方案。我将非常感谢任何帮助

谢谢你

4

1 回答 1

0

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

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

于 2013-09-05T20:02:13.673 回答