我正在尝试使用活动目录用户连接到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})" />
但身份验证失败 我没有找到任何解决方案。 我真的很感激任何帮助
谢谢
答案 0 :(得分:0)
我认为您唯一的选择是继承JNDIRealm并创建一个具有某种加密连接密码的新属性。密码不能被散列(例如,如你指定的MD5),因为散列是单向的 - 没有撤消散列 - 并且Tomcat需要原始未散列形式的密码来验证AD安装。
如果在JNDIRealm子类中使用可逆加密,那么当Tomcat需要密码时,您可以解密密码并将其传递。