Recherche
...
Pour certains besoins, on a cependant dû créer des groupes locaux (où l'on a saisi manuellement chacun des membres), ces groupes correspondent en fait à des groupes de fonctionnement interne UNR (inter-établissement) que l'on ne retrouve pas dans les SI des établissement (sous quelle forme que ce soit) et que l'on ne peut donc pas retrouver dans les au travers des attributs shibboleth.
On a donc souhaité retrouver ces mêmes groupes dans Esup-Ecm, et il nous paraissait dommageable de devoir les renseigner de nouveaux, c'est à dire nouveau, puis donc de devoir maintenir en parallèle ces groupes à la fois au niveau du gestionnaire de groupes d'EsupPortail et au niveau du gestionnaire de groupes d'EsupEcm Esup-Ecm .
Par rapport à nos stratégies de mise en place (EsupPortail est incontestablement le coeur de l'ENT et services satellitaires) et notre ENT (on a pris l'habitude de gérer les groupes locaux/UNR dans EsupPortail), nous avons travaillé à récupérer les groupes depuis EsupPortail vers EsupEcm (et non l'inverse).
Il en a donc découlé ce développement d'esup-ecm-uportal-groups qui devrait nous servir tant qu'une solution plus structurante (Grouper certainement donc) ne sera pas étudiée, adoptée puis mise en place.
Nous ne distribuons actuellement pas de jar, mais le plugin a été développé pour pouvoir le faire au besoin.
Nous vous proposons de récupérer les sources via subversion depuis https://subversion.cru.fr/esup-ecm/esup-ecm-uportal-groups/trunk
| Bloc de code |
|---|
svn co https://subversion.cru.fr/esup-ecm/esup-ecm-uportal-groups/trunk esup-ecm-uportal-groups
|
Ensuite, le seul fichier de configuration du module en lui même se situe ici : src/main/resources/OSGI-INF/uportal-ws-contrib.xml (ce fichier devrait pouvoir être externalisé su jar, nous n'avons pas réussi pour l'instant). Dans ce fichier, vous devez indiquer l'URL du WebService EsupPortail/uPortal, du type :https://dsi-2.univ-rouen.fr/uPortal/services/UportalService
Nous avons également développé un petit jeu de test de récupération des groupes, vous devriez pour que les tests passent (optionnel) modifier également le fichier java src/test/java/org/esupportail/ecm/uportal/TestEsupPortalService.java : bonamvin@univ-rouen.fr est donné en dur, remplacez le par un identifiant d'un utilisateur uPortal étant affecté à au moins un groupe local.
| Bloc de code |
|---|
mvn clean package
|
vous permet d'obtenir un target/esup-ecm-uportal-groups-5.4.0.jar
Si la phase de test échoue car vous n'avez pas voulu modifier src/test/java/org/esupportail/ecm/uportal/TestEsupPortalService.java ou encore que votre EsupPortail n'est pas disponible etc. en toute conscience vous pouvez éviter la phase de tests ainsi :
| Bloc de code |
|---|
mvn-Dmaven.test.skip=true clean package
|
Une fois le jar obtenu, sur une version nuxeo-dm-5.4.0-tomcat vous pouvez déployer esup-ecm-uportal-groups en :
* copiant target/esup-ecm-uportal-groups-5.4.0.jar dans nxserver/plugins/
* copiant les jar de target/classes/lib/ dans nxserver/lib/ (nous n'avons pas réussi à les embarquer correctement dans esup-ecm-uportal-groups-5.4.0.jar pour déploiement automatique lors du lancement de nuxeo-tomcat), c'est à dire les jars suivant :
axis-1.4.jar axis-wsdl4j-1.5.1.jar commons-discovery-0.2.jar esup-uportal-ws-client-20100915.jar jaxrpc-api-1.1.jar
Vous pouvez alors retrouver les groupes uPortal dans la recherche de groupes de Nuxeo (Utilisateurs et groupes) ainsi que dans l'onglet Admiinistration des espaces/sections/dossiers - Droits d'accès (positionnement des droits).
Un certain nombre de limitations sont présentes sur ce module, la plupart ne seront pas levées, on rappelle qu'à terme il parait plus élégant de se tourner vers un gestionnaire de groupes plus structurant et centralisé tel que Grouper - pour lequel il faudra, à l'image de ce qui a été fait pour uPortal->Nuxeo via ce plugin esup-ecm-uportal-groups, développer un plugin Nuxeo permettant de retrouver les groupes issus de Grouper dans Nuxeo.
Voici donc ces limitations (sans doute non exhaustif) :
On utilise EhCache pour éviter d'appeler trop souvent les WS EsupPortail. Cela est codé directement dans UportalGroupComputer.java, on y donne en dur le temps de cache par exemple (5 min).
On pourrait rendre cette implémentation de cache plus souple.
... autre ?