Documentations:Integration Grouper uPortal
Un article de Wiki ESCO-Portail.
Sommaire |
Utilisation de Internet2 Grouper dans uPortal
Schéma général
Gestionnaire de groupes
Projet : ESCO-GroupManager
Voir les notes relatives à l'implémentation pour plus de détails.
Installation du gestionnaire dans uPortal
1) Dézipper le package esco-groupmanager<vsersion>.zip
(Ce paquet peut être généré depuis le projet eclipse via la cible ant dist.)
2) Editer le fichier build.properties
# Global options esco-gm.deploy.lib=/opt/uPortal_rel-2-6-1-GA/lib/compile/ esco-gm.deploy.properties=/opt/uPortal_rel-2-6-1-GA/properties/ esco-gm.ws.url=http://<hostname>:8080/ws4Internet2Grouper/xfire/IGrouperAPIExposer esco-gm.deploy.tplib=true # Compilation properties esco-gm.compile.debug=false esco-gm.compile.deprecation=true esco-gm.compile.target=1.5 esco-gm.compile.source=1.5 esco-gm.compile.optimize=true
Détail des propriétés :
- esco-gm.deploy.lib : Le répertoire où est copié le fichier jar du gestionnaire (et éventuellement les bibliothèques tierces).
- esco-gm.deploy.properties : Le répertoire où est copié le fichier de configuration du client pour le web service.
- esco-gm.ws.url : L'URL du web service.
- esco-gm.deploy.tplib : à positionner à true si les bibliothèques tierces doivent également être copiées.
- Remarque : Même si elles ont été copiées lors du déploiement, les bibliothèques tierces ne sont pas effacées par la cible clean.
3) Déployer : ant deploy
4) Editer le fichier de configuration des groupes composites de uPortal, <uPortal>/properties/groups/compositeGroupsService.xml :
<?xml version="1.0"?> <servicelist defaultService="local" compositeFactory="org.jasig.portal.groups.ReferenceCompositeGroupServiceFactory" nodeSeparator="."> <service> <name>local</name> <service_factory>org.esco.groups.ESCOReferenceIndividualGroupServiceFactory</service_factory> <entity_store_factory>org.jasig.portal.groups.ReferenceEntityStoreFactory</entity_store_factory> <group_store_factory>org.esco.groups.ESCOReferenceEntityGroupStoreFactory</group_store_factory> <entity_searcher_factory>org.jasig.portal.groups.ReferenceEntitySearcherFactory</entity_searcher_factory> <internally_managed>true</internally_managed> <caching_enabled>true</caching_enabled> </service> <service> <name>ESCO-GROUPER</name> <service_factory>org.esco.groups.ESCOReferenceIndividualGroupServiceFactory</service_factory> <entity_store_factory>org.esco.groups.EntityStoreFactory</entity_store_factory> <group_store_factory>org.esco.groups.EntityGroupStoreFactory</group_store_factory> <entity_searcher_factory>org.esco.groups.EntitySearcherFactory</entity_searcher_factory> <internally_managed>false</internally_managed> <caching_enabled>false</caching_enabled> </service> </servicelist>
- Un exemple de fichier se trouve dans le répertoire <ESCO-GroupManager>/properties/compositeGroupService-example.xml.
5) Configuration du raccordement des groupes issus de Grouper aux groupes internes uPortal :
Dans le fichier properties/esco-GroupLoad.xml associer aux groupes uPortal des espaces de noms ou des groupes de Grouper à raccorder.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <entry key="grouper.requests.cache.duration">25</entry> <entry key="Portal Administrators">esco:admin</entry> <entry key="Etablissements">esco:ENT_Groupes:etb1;esco:ENT_Groupes:etb2</entry> </properties>
Détail des propriétés :
- grouper.requests.cache.duration : la durée de validité des requêtes au web service de Grouper, en secondes.
- <entry key="Etablissements">esco:ENT_Groupes:etb1;esco:ENT_Groupes:etb2</entry> : raccorde les espaces de noms Grouper esco:ENT_Groupes:etb1 et esco:ENT_Groupes:etb2 au groupe uPortal Etablissements.
Remarques :
- Les espaces de noms définis dans Grouper sont également vus comme des groupes au niveau de uPortal, afin de conserver la structure arborescente.
- Les descriptions des groupes ne sont pas mises à jour dynamiquement (modification du canal uPortal groupsmanager nécessaire).
- Résistance à la charge à valider.
- Déterminer le paramétrage en terme de cache.
- Ajouter éventuellement un deuxième niveau de cache au niveau de la création des instances de ESCOEntityGroupImpl.
- Comportement curieux de la recherche des personnes dans le portail.
6) Redéployer et redémarrer le portail.
Interface du service web
Projet : ESCO-ws4I2Grouper - développement basé sur ESUP-Commons.
Package pour le web service : org.esupportail.esco.ws4Internet2Grouper.services.remote
Installation du web service
Première installation
1 - unzip ws4Internet2Grouper-x.x.x-x.zip && cd ws4Internet2Grouper-x.x.x.
2 - Editer les fichiers de configuration suivants :
- certains fichiers sont présents sous forme d'exemple : e.g. build-servlet-example.properties pour build.properties
- build.properties pour les répertoires de déploiement.
- properties/grouper/sources.xml : définition des sources de données (API Subject).
- properties/grouper/grouper.hibernate.properties : définition du backend de grouper.
- properties/grouper/grouper.properties : paramétrage de grouper, notamment les permissions par défaut et le nom du groupe de confiance.
- properties/logging/log4j.properties : paramétrage de log4j , si le fichier n'existe pas les web services ne démarreront pas.
- properties/export/sarapis-groups-service.xml : idem il doit exister (voir le paramétrage du service d'alimentation ).
3 - ant compile.
4 - ant deploy.
5 - Redémarrer tomcat.
Installations suivantes
1 - unzip ws4Internet2Grouper-x.x.x-x.zip && cd ws4Internet2Grouper-x.x.x.
2 - ant recover-config
3 - ant deploy.
Remarque : si le réperoire correspondant à la version précédente n'est pas trouvé alors qu'il existe, vérifier la propriété recover.previous-versions au tout début du fichier build.xml.
<property name="recover.previous-versions" value="2.0.0" />

