Je découvre alfresco et viens d'installer une 2.1RC1...

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

Je découvre alfresco et viens d'installer une 2.1RC1...

Bonjour,

Je découvre alfresco et viens d'installer une 2.1RC1 sur un linux.

Je me suis connecté au LDAP de mon entreprise et la pas de problème un nouvel utilisateur qui se connecte crée son compte.

Mais j'ai aussi besoin de récupérer le mail de l'utilisateur.

1) ai-je bien compris qu'il me faut synchronisé l'annuaire avec le bean ldapPeopleExportSource ?
2) J'ai activé la synchro et j'obtiens :
15:53:20,960 ERROR [org.quartz.core.ErrorLogger] Job (DEFAULT.ldapPeopleJobDetail threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.alfresco.repo.importer.ExportSourceImporterException: Failed to import]
   at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
   at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: org.alfresco.repo.importer.ExportSourceImporterException: Failed to import
   at org.alfresco.repo.importer.ExportSourceImporter.doImport(ExportSourceImporter.java:214)
   at org.alfresco.repo.importer.ImporterJob.execute(ImporterJob.java:44)
   at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
   … 1 more
Caused by: org.alfresco.repo.security.authentication.AuthenticationException: Unable to connect to LDAP Server; check LDAP configuration
   at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.buildInitialDirContext(LDAPInitialDirContextFactoryImpl.java:94)
   at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.getDefaultIntialDirContext(LDAPInitialDirContextFactoryImpl.java:79)
   at org.alfresco.repo.security.authentication.ldap.LDAPPersonExportSource.generateExport(LDAPPersonExportSource.java:164)
   at org.alfresco.repo.importer.ExportSourceImporter.doImport(ExportSourceImporter.java:174)
   … 3 more
Caused by: javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]
   at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2946)
   at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2753)
   at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2667)
   at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:287)
   at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
   at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
   at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
   at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
   at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
   at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
   at javax.naming.InitialContext.init(InitialContext.java:223)
   at javax.naming.InitialContext.<init>(InitialContext.java:197)
   at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:82)
   at org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl.buildInitialDirContext(LDAPInitialDirContextFactoryImpl.java:86)
   … 6 more
La synchro ne va-t-elle pas lire les infos de connexion de ldapInitialDirContextFactory  et le dn de authenticationComponent ?

Qu'est-ce que je n'ai pas compris ?

Merci d'avance.

Laurent
7 Replies
Highlighted
Partner

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

Bonjour,

Je découvre alfresco et viens d'installer une 2.1RC1 sur un linux.
Pour info, la version 2.1 community est sortie il y a quelques jours.

1) ai-je bien compris qu'il me faut synchronisé l'annuaire avec le bean ldapPeopleExportSource ?
Oui, il faut passer par la synchro pour récupérer les adresse emails des utilisateurs. Et c'est bien le bean ldapPeopleExportSource qu'il faut modifier (et d'autres également).

La synchro ne va-t-elle pas lire les infos de connexion de ldapInitialDirContextFactory  et le dn de authenticationComponent ?
La synchro utilise bien le bean ldapInitialDirContextFactory pour se connecter à l'annuaire, mais pas authenticationComponent qui est utilisé uniquement pour l'authentification.

Du fichier de log, on retiendra les 2 lignes suivantes :
Caused by: org.alfresco.repo.security.authentication.AuthenticationException: Unable to connect to LDAP Server; check LDAP configuration
Caused by: javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]
A mon avis, la propriété java.naming.security.principal du bean ldapInitialDirContextFactory n'est pas correctement renseignée. Tu utilises quel annuaire LDAP (AD, OpenLDAP, etc.) ?
Highlighted
Member II

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

Merci de ta réponse,


C'est un OpenLDAP.


La question est : peut-elle être mal renseigné, vu que des utilisateurs renseignés dans LDAP peuvent se connecter :

Voici le code
    <bean id="ldapInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">

        <property name="initialDirContextEnvironment">

            <map>

                <!– The LDAP provider –>

                <entry key="java.naming.factory.initial">

                    <value>com.sun.jndi.ldap.LdapCtxFactory</value>

                </entry>

               

                <!– The url to the LDAP server –>

                <!– Note you can use space separated urls - they will be tried in turn until one works –>

                <!– This could be used to authenticate against one or more ldap servers (you will not know which one ….) –>

                <entry key="java.naming.provider.url">

                    <value>ldap://10.122.250.94:390</value>

                </entry>

               

                <!– The authentication mechanism to use      –>

                <!– Some sasl authentication mechanisms may require a realm to be set –>

                <!–                java.naming.security.sasl.realm –>

                <!– The available options will depend on your LDAP provider –>

                <!– entry key="java.naming.security.authentication"  –>

                    <!– value>DIGEST-MD5</value  –>

                <!– /entry  –>

               

                <!– The id of a user who can read group and user information –>

                <!– This does not go through the pattern substitution defined above and is used "as is" –>

                <entry key="java.naming.security.principal">

                    <value>IdLecture</value>

                </entry>

               

                <!– The password for the user defined above –>

                <entry key="java.naming.security.credentials">

                    <value>lectureSeule</value>

                </entry>

            </map>

        </property>

    </bean>
Qui fonctionne bien avec l'identification des utilisateurs
Highlighted
Active Member

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

hum … en LDAP je connais le port 389 en standard, et 636 en version TLS, mais pas 390.
C'est normal ce 390 dans ta conf' ?
Highlighted
Partner

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

Si tu utilises un OpenLDAP, il n'est pas nécessaire de spécifier java.naming.security.principal et java.naming.security.credentials. Si ces deux propriétés ne sont pas définies, Alfresco va fait un bind en anonymous sur l'annuaire.

Ce qui nous donne :
    <bean id="ldapInitialDirContextFactory" class="org.alfresco.repo.security.authentication.ldap.LDAPInitialDirContextFactoryImpl">
        <property name="initialDirContextEnvironment">
            <map>
                <!– The LDAP provider –>
                <entry key="java.naming.factory.initial">
                    <value>com.sun.jndi.ldap.LdapCtxFactory</value>
                </entry>
               
                <!– The url to the LDAP server –>
                <!– Note you can use space separated urls - they will be tried in turn until one works –>
                <!– This could be used to authenticate against one or more ldap servers (you will not know which one ….) –>
                <entry key="java.naming.provider.url">
                    <value>ldap://10.122.250.94:390</value>
                </entry>
               
                <!– The authentication mechanism to use      –>
                <!– Some sasl authentication mechanisms may require a realm to be set –>
                <!–                java.naming.security.sasl.realm –>
                <!– The available options will depend on your LDAP provider –>
                <!– entry key="java.naming.security.authentication"  –>
                    <!– value>DIGEST-MD5</value  –>
                <!– /entry  –>
            </map>
        </property>
    </bean>
Highlighted
Member II

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

Oui c'est un ldap de test et il est en 390 … les clients LDAP marche bien
Highlighted
Member II

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

Ca y est j'ai résolu le pb, en fait le pb est sur le java.naming.security.principal

pour identification

                <entry key="java.naming.security.principal">
                    <value>lectureLdap</value>
                </entry>
marche bien mais pour l'export ldap il faut mettre tout le dn
                <entry key="java.naming.security.principal">
                    <value>cn=lectureLdap,ou=PERSONNES,o=MABOITE</value>
                </entry>
Highlighted
Partner

Re: Je découvre alfresco et viens d'installer une 2.1RC1...

C'est une bonne nouvelle Smiley Wink

Merci d'avoir pris le temps de donner la solution.