LDAP problem during upgrade 5.02 to 6.0.2 of Jazz RTC
Hello
I have the following configuration : Linux Redhat 6.x, Jazz 5.0.2 withTomcat.
OpenLDAP on another server
Run fine on 5.0.2
My tomcat-server.xml :
_______________________________________________________________
<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionName=""
connectionURL=ldap://ldapserver:389
roleBase="ou=JazzGroups,ou=rtc,dc=cie,dc=corp"
roleName="cn"
roleSearch="(memberUid={1})"
roleSubtree="true"
userBase="ou=users,dc=cie,dc=corp"
userSearch="(uid={0})"
userSubtree="true"/>
_______________________________________________________________
We launched upgrade to 6.0.2 with this script : "upgrade/jts/jts_upgrade.sh -oldJTSHome /opt/IBM/JazzTeamServer/server/conf"
And we got the following message (extract) :
_______________________________________________________________
........
Backing up the Liberty user configuration file "/opt/IBM/RTC_602/server/liberty/servers/clm/conf/basicUserRegistry.xml" to "/opt/IBM/RTC_602/server/liberty/servers/clm/conf/basicUserRegistry1469525654128backup.xml"...
Merging Tomcat users xml file "/opt/IBM/JazzTeamServer/server/tomcat/conf/tomcat-users.xml"...
Backing up the Liberty Server xml file "/opt/IBM/RTC_602/server/liberty/servers/clm/server.xml" to "/opt/IBM/RTC_602/server/liberty/servers/clm/server1469525654225backup.xml"...
Merging Tomcat server xml file "/opt/IBM/JazzTeamServer/server/tomcat/conf/server.xml"...
Backing up web.xml file "/opt/IBM/RTC_602/server/liberty/servers/clm/apps/jts.war/WEB-INF/web.xml"...
Updating web.xml file "/opt/IBM/RTC_602/server/liberty/servers/clm/apps/jts.war/WEB-INF/web.xml"...
CRJAZ1365I The server is attempting to connect to the following database: "thin:JTS/xxxxxxxx@//orasrv:1521/db"
CRJAZ1840W The following driver could not be loaded and registered: oracle.jdbc.OracleDriver. This JDBC driver JAR file must be provided in a path that is configured by the server scripts. Verify that the driver is in the expected location of "/opt/IBM/RTC_602/server/oracle/ojdbc6.jar" or consult the product setup instructions to change the location and then restart the server.
CRJAZ1093E The "com.ibm.team.repository.service.internal.schemagen.PersistentMappingService" feature could not start.
CRJAZ1779I This server is configured as a JTS.
CRJAZ2558I Setting the local server rename state to false and the openServerDescriptionServiceTemporarily state to false.
Updating configuration files for LDAP...
Internal Error: The service configuration for com.ibm.team.repository.service.jts.internal.userregistry.ldap.LDAPUserRegistryProvider could not be found. If the service is an extension service, consider using /com.ibm.team.repository.service/schema/extensionServiceLocator.exsd for a quick and easy fix to this problem.
CRJAZ2963E The WebSphere Liberty configuration files could not be modified for LDAP authentication.
CRJAZ1868E There was an error merging configuration files. See log for details.
The jts upgrade failed at step 0. Correct the problem and run the script again starting at step 0.
_______________________________________________________________
I think that we must configure liberty for the LDAP setup before running the upgrade script.
Can you help on this ?
I have difficulties to feed the <customFilters> paragraph
I followed these URLs :
- official doc : https://www.ibm.com/support/knowledgecenter/SSYMRC_6.0.2/com.ibm.jazz.install.doc/topics/t_config_ldap_connection_liberty.html
- https://jazz.net/wiki/bin/view/Deployment/ConfigureLDAPforLibertyProfile
- https://jazz.net/forum/questions/214013/how-to-configure-ldap-with-rtc-601-on-linux-using-websphere-liberty?sort=oldest
Thanks a lot
JY
4 answers
I have had the same problem during my upgrade from 5.0.2. to 6.0.2.
Please note that I use OpenLDAP to save user credentials.
I have changed the authentication method on this file :
cat /opt/RTC_V6.0.2/server/liberty/servers/clm/server.xml ......... < ! --include location="conf/basicUserRegistry.xml"/--> <include location="conf/ldapUserRegistry.xml"/> .........
Then I have add the LDAP configuration on this file
cat /opt/RTC_V6.0.2/server/liberty/servers/clm/conf/ldapUserRegistry.xml <?xml version="1.0" encoding="UTF-8"?><server> <featureManager> <feature>ldapRegistry-3.0</feature> </featureManager> <ldapRegistry baseDN="dc=compagny,dc=com" bindDN="uid=root,cn=admins,dc=compagny,dc=com" bindPassword="clearPassword" host="myLdap" id="myLdap:389" ignoreCase="true" ldapType="Custom" port="389" realm="myLdap:389" recursiveSearch="true" sslEnabled="false"> <customFilters groupFilter="(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=posixGroup)))" groupIdMap="*:cn" groupMemberIdMap="*:memberUid" userFilter="(&(uid=%v)(objectclass=posixAccount))" userIdMap="*:uid"> </customFilters> </ldapRegistry> </server>
After this modification, the upgrade has finished.
But, now login on the application is impossible ... User is correctly mapped with the LDAP but groups mapping should be impossible.
I have this message :
Permission Denied Your account does not have the group memberships required to access the requested resource.
I think I have found my problem.
On tomcat, on the version 5.0.2., I have this configuration :
cat /opt/RTC_V5.0.2/server/tomcat/conf/server.xml <Realm className="org.apache.catalina.realm.JNDIRealm" connectionName="uid=root,cn=admins,dc=compagny,dc=com" connectionPassword="clearPassword" connectionURL="ldap://myLdap:389" debug="99" roleBase="ou=JazzGroups,ou=groups,dc=compagny,dc=com" roleName="cn" roleSearch="(memberUid={1})" roleSubtree="true" userBase="ou=people,dc=compagny,dc=com" userSearch="(uid={0})" userSubtree="true"/>
I see that user definition is correctly reported from tomcat configuration to the liberty configuration.
But, group definition (For example attribute roleBase) is missing on the liberty configuration and I don't find on google the mapping attribute to RoleBase from tomcat to liberty ...
Thanks for your help
Mathieu
<customfilters groupFilter="(&(cn=%v)(|(objectclass=groupOfUniqueNames)(objectclass=groupOfNames)))" groupIdMap="*:cn" groupMemberIdMap="*:memberUid" userFilter="(&(uid=%v)(|(objectclass=inetOrgPerson)(objectclass=posixAccount)))" userIdMap="*:uid"></customfilters>
Comments
Hello,
Thanks for your feedback.
I don't know ApacheDS but I think that the configuration should be almost the same thing ...
I understand your example but I don't see where the groups are searched ... In fact, you define anywhere the "ou" corresponding to the groups in the LDAP.
For example, on the tomcat configuration, this information is saved in the attribute roleBase.
It picks it from the baseDN. You could map Group DN directly for specific Groups in application.xml
However when running the setup for JTS, there you still have the entries for Base Group CN and Base User DN.
I have tried your solution but it doesn't work ...
cat /opt/RTC_V6.0.2/server/liberty/servers/clm/conf/application.xml <application id="jts" location="${server.config.dir}/apps/jts.war" name="jts" type="war"> <application-bnd> <security-role name="JazzAdmins"> <group name="cn=JazzAdmins,ou=JazzGroups,ou=groups,dc=company,dc=com"/> </security-role> <security-role name="JazzProjectAdmins"> <group name="cn=JazzProjectAdmins,ou=JazzGroups,ou=groups,dc=company,dc=com"/> </security-role> <security-role name="JazzUsers"> <group name="cn=JazzUsers,ou=JazzGroups,ou=groups,dc=company,dc=com"/> </security-role> <security-role name="JazzGuests"> <group name="cn=JazzGuests,ou=JazzGroups,ou=groups,dc=company,dc=com"/> </security-role> </application-bnd> </application>
I have the same error message.
I have also tried to use on the same file the attribute "access-id" on group tag but it fails ...
Have you got another idea ? Thanks for your help.
Regards
Mathieu
Can you share you ldapUserRegistry.xml as well? Is your baseDN set to dc=company,dc=com?
My ldapUserRegistry.xml file is on my first post.
Yes the baseDN is set to dc=company,dc=co
I was looking for updated one.
Could you update the Group Filter and User filter with the ObjectClass I mentioned and try again? You may have to restart you Liberty server.
I have tried with your ObjectClass and I have restarted the liberty server.
Groups continue to be unavailable and my user cannot log on the RTC server.
I think that my ObjectClass for user and group are correct because I have copied the classes used on tomcat.
To my mind, the problem continues to be on the search of groups on the LDAP server.