Documentations:Integration Grouper uPortal

Un article de Wiki ESCO-Portail.

Sommaire

Utilisation de Internet2 Grouper dans uPortal

Schéma général

Image:Integration_Grouper_uPortal.png

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" />
pages développeurs
pages "communauté ESCO"