Note d'installation pour l'intégration de Esup 3.2.4 et de Grouper via le GroupStore dans le trunk du projet UPortal.
Pour le moment cela s'apparente plus à un hack :)
Etape 1 : Récupération des librairies
J'ai globalement suivi les instructions de Chris Hyzer pour pouvoir juste compiler le projet
conventions :
<esupSrc> : le réperoire des sources d' eSup
<uportalSrc> : le répertoire du check out de uPortal
<customDir> : le répertoire des custom de eSup.
Etape 1 : Récupération des librairies
Récupération du trunk uPortal : svn co https://source.jasig.org/uPortal/trunk
modification de grouper.client.properties
modification de compositeGroupServices.xml
mvn install
Je mets à disposition un zip avec tous les fichiers compiler avec une JDK 1.6
Pour vous faciliter la tâche j'ai mis tous les fichiers dans un zip qui accompagne la page.
Etape 2 : copie des sources vers Esup 3.2.4
Le code du groupStore de gouper
Bloc de code |
---|
mkdir -p <customDir>/uPortal/uportal-impl/src/main/java/org/jasig/portal/groups/grouper
cp <uportalSrc>/uportal-war/src/main/java/org/jasig/portal/groups/grouper/*.java <customDir>/uPortal/uportal-impl/src/main/java/org/jasig/portal/groups/grouper
|
Les dépendances pour le client grouper
Pour la compilation
Bloc de code |
---|
cp <esupSrc>/uPortal_rel-3.2.4/uportal-impl/pom.xml <customDir>/uPortal/uportal-impl/
|
Edition du fichier pom.xml pour ajouter
Bloc de code |
---|
vim <customDir>/uPortal/uportal-impl/pom.xml
|
ajouter les lignes suivantes
Bloc de code |
---|
<dependency>
<groupId>edu.internet2.middleware.grouper</groupId>
<artifactId>grouperClient</artifactId>
</dependency>
|
juste après la dépendance dom4j par exemple.
pour le repository du client grouper.
Bloc de code |
---|
cp <esupSrc>/uPortal_rel-3.2.4/pom.xml <customDir>/uPortalajouter la ligne suivante
|
ajouter la ligne suivante
Bloc de code |
---|
<grouperClient.version>1.6.3</grouperClient.version>
|
juste avant <hibernate.version> dans le groupe des dépendances de version.
ajouter les lignes suivantes
Bloc de code |
---|
<dependency>
<groupId>edu.internet2.middleware.grouper</groupId>
<artifactId>grouperClient</artifactId>
<version>${grouperClient.version}</version>
</dependency>
|
juste avant les les dépendances de hsql dans le bloc des <dependencies>
Pour la prise en compte grouper par le portail
Bloc de code |
---|
cp <uportalSrc>/uportal-war/src/main/resources/properties/groups/compositeGroupServices.xml <customDir>/uPortal/uportal-impl/src/main/resources/properties/groups
|
y ajouter les éléments pour grouper ci-après en fin de fichier comme spécifié par Chris,
Bloc de code |
---|
<service>
<name>grouper</name>
<service_factory>org.jasig.portal.groups.ReferenceIndividualGroupServiceFactory</service_factory>
<entity_store_factory>org.jasig.portal.groups.grouper.GrouperEntityStoreFactory</entity_store_factory>
<group_store_factory>org.jasig.portal.groups.grouper.GrouperEntityGroupStoreFactory</group_store_factory>
<entity_searcher_factory>org.jasig.portal.groups.grouper.GrouperEntitySearcherFactory</entity_searcher_factory>
<internally_managed>false</internally_managed>
<caching_enabled>true</caching_enabled>
</service>
|
Pour la configuration de Grouper
Bloc de code |
---|
cp <uportalSrc>/uportal-war/src/main/resources/grouper.client.properties /<customDir>/uPortal/uportal-impl/src/main/resources
|
Modifier le fichier qui contient l'url et le compte d'accès au web service de Grouper.
Etape 3
...
: Patch du gestionnaire de groupes d'uPortal
L'utilisation de : comme séparateur dans le nommage des groupes dans Grouper pose un problème au gestionnaire groupes d' uPortal. Ce problème a déjà été reporté dans le Jira de uPortal (merci à Julien Gribonvald pour l'information) et Bill Brown a déjà proposé un patch https://issues.jasig.org/secure/attachment/11917/rel-3-2-patches.patch.
Pour ce faire, j'ai tout simplement modifié le fichier les fichiers source de uPortal avec les différences décrites dans le fichier patch.
Une fois les modifications faîtes, retour dans le réperrtoire d'installation de esup et le classique : ant init deploy
Etape 3 : transfert des librairies vers votre Esup 3.2.4
Pour que Grouper soit pris en compte par le portail, il faut encore y transférer les librairies pour Grouper. Dans cette première approche très brouillone, je copie directement les librairies dans la webapp uPortal en partant des fichiers obtenus à l'étape 1 ou le zip.
Le seul fichier à modifier est grouper.client.properties qui contient l'url et le compte d'accès au web service de Grouper.
Ensuite copie des fichiers :
- grouperClients-1.6.3.jar -> webapps/uPortal/WEB-INF/lib
- le répertoire grouper -> webapps/uPortal/WEB-INF/classes/org/jasig/portal/groups
- grouper.client.properties -> webapps/uPortal/WEB-INF/classes
- compositeGroupServices.xml -> webapps/uPortal/WEB-INF/classes/properties/groups
Etape 4 : Initialisation et déploiement
Et pour finir : ant init deploy
Comme le fichier grouper.client.properties et les librairies n'existent pas dans les sources, ils ne sont pas écrasés à chaque déploiement. Pour ne pas perdre le fichier compositeGroupServices.xml à chauqe déploiement, il suffit de la mettre dans <répertoire d'installation>/custom/uPortal/uportal-impl/src/main/resources/properties/groups
Bien entendu, il faut redémarrer le portail.