This chapter covers the following topics:
* [Legacy organization configurations|#ADM.Organization.Introduction]
** [Hibernate Organization Service|#ADM.Organization.Hibernate]
** [LDAP Organization Service|#ADM.Organization.LDAP]
** [AD Organization Service|#ADM.Organization.AD]

h1. Legacy organization configurations

If you used one of those Organization Data Models
* LDAP Organization Service.
* Active Directory.
* Hibernate.
in a previous version of eXo Platform, you will be able to keep working with it on eXo Platform 3.5.

Follow those steps to configure Legacy Organization Services:
# Add a new file in {exo.conf.dir.name}/portal/portal/configuration.xml
{code:xml|title=configuration.xml}
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		   xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
		   xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
		   
	<import>legacy-organization-configuration.xml</import>
	
	<!-- Remove unnecessary Picket LINK Services -->
	<remove-configuration>org.exoplatform.services.organization.idm.PicketLinkIDMCacheService</remove-configuration>
	<remove-configuration>org.exoplatform.services.organization.idm.PicketLinkIDMService</remove-configuration>
</configuration>
{code}

# Add a new file in {exo.conf.dir.name}/portal/portal/legacy-organization-configuration.xml with one of the above contents.

h1. Hibernate Organization Service {anchor:id=ADM.Organization.Hibernate}

{code:xml|title=legacy-organization-configuration.xml}
<configuration
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
   xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
  <component>
    <key>org.exoplatform.services.organization.OrganizationService</key>
    <type>org.exoplatform.services.organization.hibernate.OrganizationServiceImpl</type>
  </component>
  <external-component-plugins>
    <target-component>org.exoplatform.services.database.HibernateService</target-component>
    <component-plugin> 
      <name>add.hibernate.mapping</name>
      <set-method>addPlugin</set-method>
      <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
      <init-params>
        <values-param>
          <name>hibernate.mapping</name>
          <value>org/exoplatform/services/organization/impl/UserImpl.hbm.xml</value>
          <value>org/exoplatform/services/organization/impl/MembershipImpl.hbm.xml</value>
          <value>org/exoplatform/services/organization/impl/GroupImpl.hbm.xml</value>
          <value>org/exoplatform/services/organization/impl/MembershipTypeImpl.hbm.xml</value>
          <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
        </values-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
  <import>classpath:/conf/portal/organization-configuration.xml</import>    
</configuration>  
{code}

h1. LDAP Organization Service {anchor:id=ADM.Organization.LDAP}

{code:xml|title=legacy-organization-configuration.xml}
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
	<component>
		<key>org.exoplatform.services.ldap.LDAPService</key>
		<type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
		<init-params>
			<object-param>
				<name>ldap.config</name>
				<description>Default ldap config</description>
				<object type="org.exoplatform.services.ldap.impl.LDAPConnectionConfig">         
					<field name="providerURL"><string>ldap://127.0.0.1:389,10.0.0.1:389</string></field>
					<field name="rootdn"><string>CN=Manager,DC=exoplatform,DC=org</string></field>
					<field name="password"><string>secret</string></field> 	  		
					<field name="version"><string>3</string></field>
					<field name="minConnection"><int>5</int></field>
					<field name="maxConnection"><int>10</int></field>    	
					<field name="referralMode"><string>follow</string></field>  
					<field name="serverName"><string>default</string></field>
				</object>
			</object-param>
		</init-params>
	</component>
	<component>
		<key>org.exoplatform.services.organization.OrganizationService</key>
		<type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
		<component-plugins>
			<component-plugin>
				<name>init.service.listener</name>
				<set-method>addListenerPlugin</set-method>
				<type>org.exoplatform.services.organization.ldap.OrganizationLdapInitializer</type>
				<description>this listener populate organization ldap service create default dn</description>      
			</component-plugin>  
		</component-plugins> 
		<init-params>
			<value-param>
				<name>ldap.userDN.key</name>
				<description>The key used to compose user DN</description>
				<value>cn</value>
			</value-param>
			<object-param>
				<name>ldap.attribute.mapping</name>
				<description>ldap attribute mapping</description>
				<object type="org.exoplatform.services.organization.ldap.LDAPAttributeMapping">                
					<field name="userLDAPClasses"><string>top,person,organizationalPerson,inetOrgPerson</string></field>
					<field name="profileLDAPClasses"><string>top,organizationalPerson</string></field>
					<field name="groupLDAPClasses"><string>top,organizationalUnit</string></field>
					<field name="membershipTypeLDAPClasses"><string>top,organizationalRole</string></field>
					<field name="membershipLDAPClasses"><string>top,groupOfNames</string></field>
					<field name="baseURL"><string>dc=exoplatform,dc=org</string></field>
					<field name="groupsURL"><string>ou=groups,ou=portal,dc=exoplatform,dc=org</string></field>
					<field name="membershipTypeURL"><string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string></field>
					<field name="userURL"><string>ou=users,ou=portal,dc=exoplatform,dc=org</string></field>
					<field name="profileURL"><string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string></field>
					<field name="userUsernameAttr"><string>uid</string></field>
					<field name="userPassword"><string>userPassword</string></field>
					<field name="userFirstNameAttr"><string>givenName</string></field>
					<field name="userLastNameAttr"><string>sn</string></field>
					<field name="userDisplayNameAttr"><string>displayName</string></field>
					<field name="userMailAttr"><string>mail</string></field>
					<field name="userObjectClassFilter"><string>objectClass=person</string></field>
					<field name="membershipTypeMemberValue"><string>member</string></field>
					<field name="membershipTypeRoleNameAttr"><string>cn</string></field>
					<field name="membershipTypeNameAttr"><string>cn</string></field>
					<field name="membershipTypeObjectClassFilter"><string>objectClass=organizationalRole</string></field>
					<field name="membershiptypeObjectClass"><string>organizationalRole</string></field>
					<field name="groupObjectClass"><string>organizationalUnit</string></field>
					<field name="groupObjectClassFilter"><string>objectClass=organizationalUnit</string></field>
					<field name="membershipObjectClass"><string>groupOfNames</string></field>
					<field name="membershipObjectClassFilter"><string>objectClass=groupOfNames</string></field>
					<field name="ldapCreatedTimeStampAttr"><string>createdTimeStamp</string></field>
					<field name="ldapModifiedTimeStampAttr"><string>modifiedTimeStamp</string></field>
					<field name="ldapDescriptionAttr"><string>description</string></field>
				</object>
			</object-param>
		</init-params>     
	</component>

	<external-component-plugins>
		<target-component>org.exoplatform.services.database.HibernateService</target-component>
		<component-plugin> 
			<name>add.hibernate.mapping</name>
			<set-method>addPlugin</set-method>
			<type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
			<init-params>
				<values-param>
					<name>hibernate.mapping</name>          
					<value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
				</values-param>
			</init-params>
		</component-plugin>
	</external-component-plugins>
</configuration>
{code}

h1. AD Organization Service {anchor:id=ADM.Organization.AD}

{code:xml|title=legacy-organization-configuration.xml}
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
  <component>
    <key>org.exoplatform.services.ldap.LDAPService</key>
    <type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
    <init-params>
      <object-param>
        <name>ldap.config</name>
        <description>Default ldap config</description>
        <object type="org.exoplatform.services.ldap.impl.LDAPConnectionConfig">
          <field name="providerURL"><string>ldap://192.168.2.88:389</string></field>
          <field name="rootdn"><string>CN=Administrator,CN=Users, DC=exoplatform,DC=org</string></field>
          <field name="password"><string>Secret1234</string></field>
          <field name="version"><string>3</string></field>
          <field name="minConnection"><int>5</int></field>
          <field name="maxConnection"><int>10</int></field>
          <field name="referralMode"><string>ignore</string></field>
          <field name="serverName"><string>active.directory</string></field>
        </object>
      </object-param>
    </init-params>
  </component>
  <component>
    <key>org.exoplatform.services.organization.OrganizationService</key>
    <type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
    <component-plugins>
      <component-plugin>
        <name>init.service.listener</name>
        <set-method>addListenerPlugin</set-method>
        <type>org.exoplatform.services.organization.ldap.OrganizationLdapInitializer</type>
        <description>this listener populate organization ldap service create default dn</description>
      </component-plugin>
    </component-plugins>
    <init-params>
      <object-param>
        <name>ldap.attribute.mapping</name>
        <description>ldap attribute mapping</description>
        <object type="org.exoplatform.services.organization.ldap.LDAPAttributeMapping">
          <field name="userLDAPClasses"><string>top,person,organizationalPerson,user</string></field>
          <field name="profileLDAPClasses"><string>top,organizationalPerson</string></field>
          <field name="groupLDAPClasses"><string>top,organizationalUnit</string></field>
          <field name="membershipTypeLDAPClasses"><string>top,group</string></field>
          <field name="membershipLDAPClasses"><string>top,group</string></field>
          <field name="baseURL"><string>DC=test,DC=man</string></field>
          <field name="groupsURL"><string>ou=groups,ou=portal,DC=test,DC=man</string></field>
		  <field name="membershipTypeURL"><string>ou=memberships,ou=portal,DC=test,DC=man</string></field>
          <field name="userURL"><string>ou=users,ou=portal,DC=test,DC=man</string></field>
          <field name="profileURL"><string>ou=profiles,ou=portal,DC=test,DC=man</string></field>
          <field name="userUsernameAttr"><string>sAMAccountName</string></field>
          <field name="userPassword"><string>unicodePwd</string></field>
          <field name="userFirstNameAttr"><string>givenName</string></field>
          <field name="userLastNameAttr"><string>sn</string></field>
          <field name="userDisplayNameAttr"><string>displayName</string></field>
          <field name="userMailAttr"><string>mail</string></field>
          <field name="userObjectClassFilter"><string>objectClass=user</string></field>
          <field name="membershipTypeMemberValue"><string>member</string></field>
          <field name="membershipTypeRoleNameAttr"><string>cn</string></field>
          <field name="membershipTypeNameAttr"><string>cn</string></field>
          <field name="membershipTypeObjectClassFilter"><string>objectClass=group</string></field>
          <field name="membershiptypeObjectClass"><string>group</string></field>
          <field name="groupObjectClass"><string>organizationalUnit</string></field>
          <field name="groupObjectClassFilter"><string>objectClass=organizationalUnit</string></field>
          <field name="membershipObjectClass"><string>group</string></field>
          <field name="membershipObjectClassFilter"><string>objectClass=group</string></field>
          <field name="ldapCreatedTimeStampAttr"><string>createdTimeStamp</string></field>
          <field name="ldapModifiedTimeStampAttr"><string>modifiedTimeStamp</string></field>
          <field name="ldapDescriptionAttr"><string>description</string></field>
        </object>
      </object-param>
    </init-params>
  </component>
  <external-component-plugins>
    <target-component>org.exoplatform.services.database.HibernateService</target-component>
    <component-plugin>
      <name>add.hibernate.mapping</name>
      <set-method>addPlugin</set-method>
      <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
      <init-params>
        <values-param>
          <name>hibernate.mapping</name>
          <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
        </values-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
</configuration>
{code}