Tomcat - OpenLDAP authentication

89 Views Asked by At

What is the Realm configuration required in Tomcat 8 server.xml for authentication using OpenLDAP ?

<-- Active Directory, Working Fine-->
<Realm adCompat="true" alternateURL="ldap://a.b.c.d:3268"
      className="org.apache.catalina.realm.JNDIRealm" commonRole="CommonRole"
      connectionName="CN=admin,DC=test,DC=com"
      connectionPassword="test_password" connectionURL="ldap://a.b.c.d:3268"
      userBase="DC=test,DC=com" userRoleName="displayName"
      userSearch="(&amp;(objectCategory=user)(sAMAccountName={0}))"
      userSubtree="true" />

<!-- OpenLDAP, Not Working -->
<Realm alternateURL="ldap://a.b.c.d:4689"
      className="org.apache.catalina.realm.JNDIRealm" commonRole="CommonRole"
      connectionName="cn=admin,dc=test,dc=com"
      connectionPassword="test_password" connectionURL="ldap://a.b.c.d:4689"
      userBase="dc=test,dc=com" userRoleName="displayName"
      userSearch="(&amp;(objectClass=person)(cn={1}))"
      userSubtree="true" />
  
  
1

There are 1 best solutions below

0
Muhammed K On
I have modified as mentioned by Piotr P. Karwasz and it worked. Thanks a lot!
The userSearch attribute uses a {0} placeholder for the username, you used {1}.
  
  <Realm alternateURL="ldap://a.b.c.d:4689"
                 className="org.apache.catalina.realm.JNDIRealm" commonRole="CommonRole"
                 connectionName="cn=admin,dc=test,dc=com"
                 connectionPassword="admin_pass" connectionURL="ldap://a.b.c.d:4689"
                 debug="9" userBase="dc=test,dc=com" userRoleName="displayName"
                 userSearch="(&amp;(objectClass=person)(cn={0}))"
                 userSubtree="true" />