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>