Vous êtes ici : 6.0 > Connecteurs > Connecteur LDAP
Programmation de la synchronisation des données (mode manuel)
Connecteurs
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.
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 ) :
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>
<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>