我们正在尝试使用下面的 LDAP 设置来实现 tomcat 身份验证,尝试使用以下代码配置 server.xml
<Host ....
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionName="cn=ApacheDS,dc=example,dc=com"
connectionPassword="secret"
connectionURL="ldap://localhost:10389"
roleBase="dc=example,dc=com,dc=ActiveMQ"
roleName="cn"
roleSearch="(uniqueMember={0})"
roleSubtree="false"
userPassword="userPassword"
userPattern="cn={0},dc=example,dc=com"
/>
</Host>
在 web.xml 中我配置了组
<security-constraint>
<web-resource-collection>
<web-resource-name>Entry points</web-resource-name>
<url-pattern>/faces/analyze/*</url-pattern>
<url-pattern>/faces/common/*</url-pattern>
<url-pattern>/faces/compose/*</url-pattern>
<url-pattern>/faces/content/*</url-pattern>
<url-pattern>/faces/custom/*</url-pattern>
<url-pattern>/faces/explore/*</url-pattern>
<url-pattern>/faces/home/*</url-pattern>
<url-pattern>/faces/layouts/*</url-pattern>
<url-pattern>/faces/partials/*</url-pattern>
<auth-constraint>
<role-name>rtsAdministrator</role-name>
</auth-constraint>
</security-constraint>
在 ldap 中,我们正在使用分区 dc=example,dc=com
和连接名称 ApacheDS,在分区下我在 下创建了
和 ou=ActiveMQ
oU=GroupoU=User
在此我们有用户,但是当我合并此更改时,我在 ApacheDS(LDAP 服务器)控制台中收到以下错误。
我在 LDAP 服务器控制台中收到以下错误
[15:25:15] ERROR [org.apache.directory.server.core.authn.AbstractAuthenticator] -
ERR_6 Authentication error : Attempt to lookup non-existant entry: cn=ApacheDS,dc=example,dc=com
谁能告诉我可能是什么问题。如果您需要更多信息,请告诉我。
如果有人能为我的问题提供解决方案,那将会很有帮助。
最佳答案
您的 LDAP DIT 未 Root 于 dc=example,dc=com
,如果 Root 于此,那将令人惊讶。这只是一个示例配置。找出它的真正根源并改用它。
你还有dc=example,dc=com,dc=ActiveMQ
,证明了这一点。这也一定是错误的,但出于不同的原因:它出了问题。您不会将 dc=ActiveMQ
作为 DN 中的最根元素。
听起来你有一些调查要做。
关于java - 使用 apache tomcat 7 进行 LDAP(JNDI 领域)身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919906/