Synchroniser avec deux LDAP différents

cancel
Showing results for 
Search instead for 
Did you mean: 
ima_alfresco
Member II

Synchroniser avec deux LDAP différents

Bonjour,

Actuellement mon Alfresco se connecte sur un seul LDAP, est il possible de connecter sur plusieurs LDAP différents?

Je fais comme ca : Fichier ldap-authentication.properties –> ldap.authentication.java.naming.provider.url=ldap://nomannuaireldapSmiley Tongueortannuaireldap

Merci
16 Replies
cleseach
Active Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

Le mot clef permettant de trouver les réponses à vos question est "chaining".
Une recherche sur le wiki vous apportera plein d'informations pertinentes.

Cordialement,
Charles Le Seac'h
ima_alfresco
Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

J'ai regardé le chaining, a priori c'est bien la bonne piste.

Mais j'ai du mal a comprendre l'enchainement des différents fichiers de config pour LDAP.

Où je dois maintenant paramétrer les différents LDAP?

Merci
ima_alfresco
Member II

Re: Synchroniser avec deux LDAP différents

J'ai trouvé ce doc http://wiki.alfresco.com/w/images/0/0b/Install_Configure_Alfresco_Lab3Stable.pdf, page 81

Je testes et vous dit si cela marche
ima_alfresco
Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

J'ai fais le test comme ds le doc mais j'ai des erreurs

Caused by: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticationComponentLDAP1' defined in file [D:\serveurs\alfresco_pro\tomcat\shared\classes\alfresco\extension\ldap1-authentication-context.xml]: Cannot resolve reference to bean 'ldap1InitialDirContextFactory' while setting bean property 'LDAPInitialDirContextFactory'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ldap1InitialDirContextFactory' is defined

C'est une doc 3.0 est ce que celle ci fonctionne en 2.1? sinon d'où viens mon erreur?

Merci
cleseach
Active Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

Cette erreur :
No bean named 'ldap1InitialDirContextFactory' is defined
indique que vous n'avez certainement pas recopié la totalité de l'exemple Smiley Wink

Il doit manquer la définition de ce bean dans votre fichier de contexte mais, sans visualiser ce fichier, il va être dur de s'en assurer.

Cordialement,
Charles Le Seac'h
ima_alfresco
Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

J'ai fais du ménage des mes fichiers certaines balises étaient mal fermées. Mais je suis tjs bloqué. Est ce que la marche à suivre fonctionne en 2.1 ??

Caused by: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticationComponentLDAP1' defined in file [D:\serveurs\alfresco_pro\tomcat\shared\classes\alfresco\extension\ldap1-authentication-context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'nodeService' of bean class [org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl]: Bean property 'nodeService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Caused by:
cleseach
Active Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

L'idéal, dans ce genre de problème qui concerne des problèmes de configuration, est de nous donner un minimum de visibilité sur les configurations réalisées Smiley Wink

En clair, quelle est la définition de authenticationComponentLDAP1 ?

Cordialement,
Charles Le Seac'h
ima_alfresco
Member II

Re: Synchroniser avec deux LDAP différents

Voici ce que j'ai fais :

ldapMunich-authentication-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
   <bean name="authenticationDaoLDAPMUNICH" class="org.alfresco.repo.security.authentication.DefaultMutableAuthenticationDao">
      <property name="allowDeleteUser">
         <value>true</value>
      </property>
   </bean>
   <bean id="authenticationComponentLDAPMUNICH" class="org.alfresco.repo.security.authentication.ldap.LDAPAuthenticationComponentImpl">
      <property name="LDAPInitialDirContextFactory">
         <ref bean="ldapMunichInitialDirContextFactory"/>
      </property>
      <property name="userNameFormat">
         <value>${ldapMunich.authentication.userNameFormat}</value>
      </property>
      <property name="nodeService">
         <ref bean="nodeService" />
      </property>
      <property name="personService">
         <ref bean="personService" />
      </property>
      <property name="transactionService">
         <ref bean="transactionService" />
      </property>
   </bean>
   <bean id="ldapMunichInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">
      <property name="initialDirContextEnvironment">
      <map>
         <entry key="java.naming.factory.initial">
            <value>${ldapMunich.authentication.java.naming.factory.initial}</value>
         </entry>
         <entry key="java.naming.provider.url">
            <value>${ldapMunich.authentication.java.naming.provider.url}</value>
         </entry>
         <entry key="java.naming.security.authentication">
            <value>${ldapMunich.authentication.java.naming.security.authentication}</value>
         </entry>
         <entry key="java.naming.security.principal">
            <value>${ldapMunich.authentication.java.naming.security.principal}</value>
         </entry> <entry key="java.naming.security.credentials">
            <value>${ldapMunich.authentication.java.naming.security.credentials}</value>
         </entry>
      </map>
      </property>
   </bean>
</beans>

meme chose avec un autre ldap

chaining-authentication-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
   <bean id="authenticationService" class="org.alfresco.repo.security.authentication.ChainingAuthenticationServiceImpl">
      <property name="authenticationServices">
         <list>
            <ref bean="authenticationServiceLDAPMUNICH"/>
         </list>
      </property>
      <property name="mutableAuthenticationService">
         <ref bean="authenticationServiceLDAPNANTES"/>
      </property>
         <property name="sysAdminCache">
         <ref bean="sysAdminCache"/>
      </property>
   </bean>
   <bean id="authenticationComponent" class="org.alfresco.repo.security.authentication.ChainingAuthenticationComponentImpl">
      <property name="authenticationComponents">
         <list>
            <ref bean="authenticationComponentLDAPMUNICH"/>
         </list>
      </property>
      <property name="mutableAuthenticationComponent">
         <ref bean="authenticationComponentLDAPNANTES"/>
      </property>
   </bean>
   
   <!– LDAPNANTES –>
   <bean id="authenticationServiceLDAPNANTES" class="org.alfresco.repo.security.authentication.AuthenticationServiceImpl">
      <property name="authenticationDao">
         <ref bean="authenticationDaoLDAPNANTES"/>
      </property>
      <property name="ticketComponent">
         <ref bean="ticketComponent"/>
      </property>
      <property name="authenticationComponent">
         <ref bean="authenticationComponentLDAPNANTES"/>
      </property>
   </bean>
   <!– LDAPMUNICH –>
   <bean id="authenticationServiceLDAPMUNICH" class="org.alfresco.repo.security.authentication.AuthenticationServiceImpl">
      <property name="authenticationDao">
         <ref bean="authenticationDaoLDAPMUNICH"/>
      </property>
      <property name="ticketComponent">
         <ref bean="ticketComponent"/>
      </property>
      <property name="authenticationComponent">
         <ref bean="authenticationComponentLDAPMUNICH"/>
      </property>
   </bean>
</beans>

ldap-common-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
   <bean name="ldapAuthenticationPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="ignoreUnresolvablePlaceholders">
         <value>true</value>
      </property>
      <property name="locations">
         <value>classpath:alfresco/extension/ldap-authentication.properties</value>
      </property>
   </bean>
</beans>

Puis modification des fichiers properties
cleseach
Active Member II

Re: Synchroniser avec deux LDAP différents

Bonjour,

Le bean authenticationComponentLDAP1 n'est pas défini dans vos extraits de configuration.
C'est assez gênant pour identifier le problème relatif à la configuration de ce bean.

Cordialement,
Charles Le Seac'h