Projet esup-ecm

Recherche

Sommaire

Pages enfant
  • esup-ecm-uportal-groups

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

...

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.

Installation

Nous ne distribuons actuellement pas de jar, mais le plugin a été développé pour pouvoir le faire au besoin.

Récupération des sources

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

Configurations

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.

Compilation - création du jar

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

Déploiement

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

Utilisation

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).

Limitations

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) :

  • nous ne savons pas lister les membres d'un groupe (issu d'une limitation d'uPortal)
  • la résolution des groupes PAGS pose problème : pour que cela fonctionne, il faut le portail EsupPortail ait connaissance des attributs (intervants dans les règles PAGS) d'un utilisateur donné même si celui-ci est déconnecté :
    - cela pose problème pour des utilisateurs qui ne sont jamais connectés
    - dans notre configuration UNR RUNN (EsupPortail + Shibboleth) la plupart des attributs sont transients, ils ne sont informés sur un portail que lorsque l'utilisateur y est connecté ...
  • ce qui fait que ce plugin est plutôt adapté à la récupération des groupes dits locaux
  • dans Nuxeo, les groupes n'ont simplement qu'un nom qui doit être unique, il n'y a pas de notion de nom/label et d'id ... aussi on récupère non pas les ids des groupes EsupPortail mais les noms (afin que ceux-ci soient parlant pour les utilisateurs dans Nuxeo), les noms des groupes EsupPortail correspondent alors à des identifiants -> il faut s'assurer qu'ils soient uniques dans toute l'arborescence de groupes EsupPortail, attention aux accents également, etc.
  • si l'on utilise nuxeo-platform-shibboleth-groups-web (qui propose une navigation différente dans les groupes pour le positionnement des permissions) esup-ecm-uportal-groups devient inutilisable car nous ne pouvons alors plus avec cette interface rechercher des groupes ne contenant pas d'utilisateurs (et de par la limitation d'uPortal en la matière, les groupes uPortal récupérés par Nuxeo sont vides), aussi, et même si ceux-ci sont bien présents/connus par Nuxeo il nous est alors impossible de les sélectionner.

À Faire

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 ?