Vous êtes ici : 6.0 > Connecteurs > Connecteur LDAP

Programmation de la synchronisation des données (mode manuel)

Programmez la mise à jour de vos utilisateurs et groupes LDAP dans K-Portal / K-Sup (hors assistant de planification des scripts)

La configuration des scripts chargés de la synchronisation des données de votre annuaire LDAP vers K-Portal / K-Sup s'effectue dans un fichier /WEB-INF/ApplicationContext.xml de votre application.

1- Déclaration des scripts

  • Si vous avez configuré la synchronisation de vos utilisateurs, vous devrez activer le bean "batchSynchroUserFromLdap", ajouter la déclaration suivante (NB "ldap.liste.alias" est la propriété contenant la liste de vos alias LDAP à synchroniser séparés par des points virgules, la propriété "lazy-init=true" est indispensable sur ce bean) :
  • 	<bean id="batchSynchroUserFromLdapJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean" lazy-init="true">
    <property name="description" value="Synchronisation des utilisateurs LDAP" />
    <property name="jobClass" value="com.kosmos.ldap.batch.BatchSynchroUserFromLdap" />
    <property name="durability" value="true" />
    <property name="jobDataAsMap">
    <map>
    <entry key="alias">
    <value>${ldap.liste.alias}</value>
    </entry>
    </map>
    </property>
    </bean>
  • Si vous avez également prévu de synchroniser les groupes, vous devrez activer le bean "batchSynchroGroupFromLdapJob", chargé de la synchronisation des groupes, ajouter la déclaration (NB : la propriété "lazy-init=true" est indispensable sur ce bean) :
  • 	<bean id="batchSynchroGroupFromLdapJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean" lazy-init="true">
    <property name="description" value="Synchronisation des groupes LDAP" />
    <property name="jobClass" value="com.kosmos.ldap.batch.BatchSynchroGroupFromLdap" />
    <property name="durability" value="true" />
    <property name="jobDataAsMap">
    <map>
    <entry key="alias">
    <value>${ldap.liste.alias}</value>
    </entry>
    </map>
    </property>
    </bean>
  • Si vous avez configuré le connecteur afin de générer des fiches Annuaire et/ou Annuaire étudiants, vous devrez activer le bean "importXmlJob" chargé d'importer les fiches dans l'application, ajouter la déclaration (NB : la propriété "lazy-init=true" est indispensable sur ce bean) :
  • 	<bean id="importXmlJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean" lazy-init="true">
    <property name="description" value="Import de fichier xml" />
    <property name="jobClass" value="com.univ.batch.imports.ImportXML" />
    <property name="durability" value="true" />
    </bean>
  • Si vous avez activé les groupes dynamiques, vous devrez activer le bean "synchroniserGroupesDynamiqueJob" chargé de la synchronisation des groupes dynamiques, ajouter la déclaration :
  • 	<bean id="synchroniserGroupesDynamiqueJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <property name="description" value="Synchronisation des groupes dynamiques" />
    <property name="jobClass"
    value="com.univ.batch.process.SynchroniserGroupesDynamique" />
    <property name="durability" value="true" />
    </bean>

2- Activation de la programmation

En règle générale, les scripts de synchronisation sont programmés la nuit en même temps que le batch nocturne de maintenance
  • Au préalable, il faut donc ajouter également le bean "scanSiteJob" pour le reprogrammer dans l'ordre souhaité, ajouter la déclaration
  • 	<bean id="scanSiteJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    <property name="description" value="Mise à jour de l'application" />
    <property name="jobClass" value="com.univ.batch.process.ScanSite" />
    <property name="durability" value="true" />
    </bean>
  • La déclaration de la séquence d'éxécution est à surcharger dans la map "sequence" du trigger "scanSiteTrigger", par exemple pour activer dans l'ordre : 1/synchronisation des utilisateurs LDAP alias myAlias 2/synchronisation des utilisateurs LDAP alias myAliasBis (la propriété "ldap.liste.alias" est de la forme "myAlias;myAliasBis;...") 3/synchronisation des fiches annuaires 4/le script de maintenance 5/synchroniastion des groupes dynamiques, ajouter la déclaration suivante (NB : la propriété du bean "lazy-init=true" est indispensable sur ce bean, la propriété "blocking" de chaque job permet de préciser si la séquence doit s'arréter en cas de d'erreur sur le job ) :

  • <bean id="sequenceSurcharge" class="com.kportal.core.context.AttributeToOverrideBean" lazy-init="true">
    <property name="idBeanToMerge" value="scanSiteTrigger" />
    <property name="attributes">
    <map>
    <entry key="sequence">
    <map>
    <entry key="1">
    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
    <property name="decoratedJobDetail" ref="batchSynchroUserFromLdapJob" />
    <property name="blocking" value="false" />
    <property name="sequenceJobDataMap">
    <map>
    <entry key="alias">
    <value>myAlias</value>
    </entry>
    </map>
    </property>
    </bean>
    </entry>
    <entry key="2">
    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
    <property name="decoratedJobDetail" ref="batchSynchroUserFromLdapJob" />
    <property name="blocking" value="false" />
    <property name="sequenceJobDataMap">
    <map>
    <entry key="alias">
    <value>myAliasBis</value>
    </entry>
    </map>
    </property>
    </bean>
    </entry>
    <entry key="3">
    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
    <property name="decoratedJobDetail" ref="importXmlJob" />
    <property name="blocking" value="false" />
    </bean>
    </entry>

    <entry key="4">
    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
    <property name="decoratedJobDetail" ref="scanSiteJob" />
    <property name="blocking" value="false" />
    </bean>
    </entry>

    <entry key="5">
    <bean class="com.kportal.scheduling.spring.quartz.SequenceJobDetailDecorator">
    <property name="decoratedJobDetail" ref="synchroniserGroupesDynamiqueJob" />
    <property name="blocking" value="false" />
    </bean>
    </entry>
    </map>
    </entry>
    </map>
    </property>
    </bean>

3- Prise en compte de la configuration

Pour que la configuration soit effective, vous devrez relancer Tomcat et activer l'extension "LDAP" dans le gestionnaire d'extension.