How do I migrate the LDAP authentication user directories, users, groups and group memberships to Crowd.
Asked by Jerome Taylor:

I am using JIRA 5.1.5

JIRA is configured with:

? External user management off

? 3 User Directories

o 2 configure internal with LDAP authentication user directory UD1 and UD2

o 1 JIRA Internal Directory.

I would like to migrate to Crowd 2.6.0, How do I migrate the LDAP authentication user directories, users, groups and group memberships to Crowd.

This is what I tried:

I created a Delegated Authentication (named ITDA) with synchronization disabled and all permissions enabled.

I tried importing the JIRA users into Crowd Directory ITDA using the Atlassian Importer, but it does not import all the users and their group membership. It seem to import the users that do not exist in the ITDA LDAP tree. Is this the correct response.

I configured JIRA to use the Crowd User Directory (read/write) and I disabled UD1 and UD2. When I disabled UD1 and UD2 most of the users are missing from the user browser.

What am I doing wrong.


Answers:
author: Septa Cahyadiputra
body: Hi Jerome,

Regaridng your import issue, by default Crowd will double check if the user exist on the configured LDAP server which configured with ITDA. If the user is not searchable on your LDAP server, Crowd will not migrate it. Hence Crowd suppose to exclude all users that is not exist in the ITDA LDAP tree and migrated all that exist in the ITDA LDAP tree.

Regarding your second query, it is expected behavior for JIRA to not included all the users that no longer registered on your JIRA server in the user browser.

Hope it helps.

Cheers,  
Septa Cahyadiputra

comments: author: Jerome Taylor
body: I notice the following exceptions in the crowd log files when I attempt to import users from JIRA.

2013-03-19 07:40:27,796 http-8095-1 WARN \[org.hibernate.util.JDBCExceptionReporter\] SQL Error: 0, SQLState: null  
2013-03-19 07:40:27,796 http-8095-1 ERROR \[org.hibernate.util.JDBCExceptionReporter\] failed batch  
2013-03-19 07:40:27,796 http-8095-1 ERROR \[hibernate.event.def.AbstractFlushingEventListener\] Could not synchronize database state with session  
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update  
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)

2013-03-19 07:40:27,798 http-8095-1 ERROR \[persistence.hibernate.batch.AbstractBatchProcessor\] Could not process class com.atlassian.crowd.model.membership.InternalMembership: com.atlassian.crowd.model.membership.InternalMembership@3a67ba87\[parentId=133164,childId=71402,membershipType=GROUP_USER,groupType=GROUP,parentName=OM_group,lowerParentName=om_group,childName=gn803f,lowerChildName=gn803f,directoryId=32772\]  
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

Also what is the procedure to migrate user autenication to Crowd base on this cionfiruration of JIRA.


author: Septa Cahyadiputra
body: Judging from your stack trace, there might be a duplicate on your JIRA database that Crowd does not accept during the migration process.

In regards to your second query, please refer to our documentation [here](https://confluence.atlassian.com/display/CROWD/Integrating+Crowd+with+Atlassian+JIRA). Since you have multiple directory on JIRA side, you might want to consider using CSV import and create each three directory on Crowd so you could mimic the user management state as similar as possible with the previous state.

However, please note that CSV import require manual work to compose a valid and good CSV files.

Hope it helps.

Cheers,  
Septa Cahyadiputra


author: Jerome Taylor
body: In the CVS file is the password a direct feed from the database table cwd_user.credential


Tags: crowd-administration