ESUP-Portail APEREO

uPortal Winter Summit France 2019

ESUP-Portail APEREO

uPortal Winter Summit France 2019

Présentation uPortal 5.4.x

  • Julien Gribonvald
  • GIP RECIA

Plan

  1. Nouveautés
    • Quelques rappels
    • L'API
    • Les soffits
    • UI et web-components
  2. Atelier Déploiement
  3. Moment d'échanges

Nouveautés

Quelques rappels

Cf présentation Drew Wills ESUP-Days 25 !

  • uPortal-start un client pour configurer/déployer facilement et rapidement !
  • UI améliorée et RWD
  • Accessibilité: implémente le WCAG 2.0 Level AA
  • multi-tenants
  • Documentation en Français
  • Gradle
  • docker

Sinon pour les détails !

Nouveautés

l'API

Évolution de l'API pour les nouveaux besoins

Activer Swagger en test !

Nouveautés

les Soffits

RDV demain (le 30/01) matin pour plus de détails !


Permet de migrer rapidement les portlets suite à l'abandon du support de la norme portlet par Spring Framework à partir de la v5 !

Nouveautés

UI et web-components

Toutes les régions et leur contenu sont configurables/définissables => À vos uPortal-datas !


web-components: RDV cet après-midi (le 29/01) pour plus de détails !

Atelier Déploiement

               
                 $ git clone https://github.com/Jasig/uPortal-start.git
                 $ cd uPortal-start
                 
                 $ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
                 $ ./gradlew tasks
                 
                 $ cp build.properties.sample build.properties
                 # edit build.properties

                 $ ./gradlew hsqlStart
                 $ ./gradlew portalInit
                 $ ./gradlew tomcatStart
                 # aller à  http://localhost:8080/uPortal/ et lire https://github.com/Jasig/uPortal-start/blob/master/LISEZMOI.md#premier-lancement-duportal-via-uportal-start
               
             

Pour le reste il y a les documentations uPortal-Start https://jasig.github.io/uPortal/fr ou les mailing-list !

Moment d'échanges

Questions/réponses


Recensement des travaux en cours


Recensement des besoins


Autres sujets

ESUP-Portail APEREO

uPortal Winter Summit France 2019

Présentation uPortal Web-Components

  • Julien Gribonvald
  • Christian Cousquer
  • GIP RECIA
  • Université Sorbonne

Plan

  • Qu'es aquo ?
  • Comment faire ?
    • À chacun sa façon de faire
    • Quelques références
  • Atelier Développement ?
  • Moment d'échanges

Qu'es aquo ?

Qu'es aquo ?

Ce qui est a retenir

  • Compatibles nouveaux navigateurs ou via des polyfill (intégrés dans uPortal)
  • Bien plus rapide que les portlets à développer
  • Facilement intégrables/transportables (webjars)
  • Retenir principalement Custom Elements et Shadow DOM
  • Faire attention à la taille des composants (dépendences)
  • Utilisation de webpack et babel recommandée

Comment faire ?

À chacun sa façon de faire

  • pur javascript (Christian Cousquer)
  • VueJS* (Julien Gribonvald)
  • PReact*
  • React
  • HyperHTML
  • Polymer*
  • Angular
  • Svelte
  • et bien d'autres

Documentation uPortal-contrib

Comment faire ?

Quelques références

Atelier Développement

Moment d'échanges

Questions/réponses


Autres sujets ?

ESUP-Portail APEREO

uPortal Winter Summit France 2019

Présentation uPortal Soffits

  • Université Polytechnique Hauts-de-France

Plan

  • Pourquoi les soffits
  • Créer une soffit
    • Création du projet
    • Configuration
    • Compilation - test
    • Exemple
    • Sécurisation
  • Retour d'expérience
  • Moment d'échanges

Pourquoi les soffits

  • Spring 5: Abandon de l'API Portlet
  • Solutions:
    • Soffits
    • Systèmes sécurisés utilisant des technos récentes (JWT, etc...)
    • Web-components
  • documentation
  • Sécurisation des échanges entre le client, l'API REST et uPortal
    • Plusieurs solutions mais la Soffit est la solution une simplifiée/rapide

Créer une soffit

Création du projet

  • en suivant la documentation
  • Utilisation de spring boot
  • Utilisation de gradle
  • Utilisation de l'outil spring initializer : http://start.spring.io/
    • Gradle projet
    • packaging war
    • Dependencies : Sélection dans le search ou dans la liste
      • Web
      • Cache
    • Infos :
      • Group : fr.esupportail
      • Artifact : zimbra
      • Name : zimbra
      • Description : …

Créer une soffit

Configurations

  • Dépendances
    • Uportal-soffit-renderer
      • ATTENTION : utiliser la version de uPortal installée
  • Code java
    • Ajouter l'annotation @SoffitApplication dans la classe principale de l'application
    • Créer le répertoire
      • src/main/webapp/WEB-INF/soffit
      • Créer les sous répertoires qui contiendront les soffits (ZimbraMail, ZimbraIcone, ZimbraCalendar, ...)

Créer une soffit

Configurations

Créer une soffit

Compilation - test

  • Compiler le projet
    • ./gradlew assemble
  • Déployer le projet dans un tomcat
  • Ajouter les soffits dans uPortal (portlet-definition)

Créer une soffit

Exemple 1/2 (zimbra)

  • Utilisation de jsonp pour récupérer un token zimbra depuis auth-zcs
  • Utilisation des services REST proposés par Zimbra pour récupérer les mail et l'agenda
  • Création de services REST dans la soffit pour interroger les services REST de Zimbra
  • Utilisation des configurations externes pour récupérer les adresses des serveurs de messagerie
    • Le fichier de conf n'est pas l'application.properties par défaut.
    • Utilisation des mécanismes introduit dans uPortal 5,0 avec déport des fichiers de conf (utilisation des annotations dans les classes directement @PropertySource et @ConfigurationProperties)

Créer une soffit

Exemple 2/2 (zimbra)

  • Mécanisme
    • Le views.jsp configure et lance le js
    • Le js appelle l'api REST de la soffit qui permet de récupérer un token zimbra avec un appel jsonp
    • L'api REST récupère le bon service de récupération de token en fonction du statut de l'utilisateur connecté.
    • Le js récupère un token pour l'utilisateur sur la bonne adresse en jsonp
    • Le js appelle l'api REST de la soffit qui permet de récupérer les mails non lus dans inbox en utilisant le token récupéré à l'étape précédente
    • L'api REST appelle le service REST proposé par Zimbra
    • Le js traite les informations récupérées pour l'affichage

Créer une soffit

Sécurisation

Retour d'expérience

1/2

  • Soffit développée ou en cours de dev
    • Zimbra
      • Derniers mails, agenda, lien direct vers le bon serveur de mail
    • Sympa
      • Liste des listes auxquelles l'utilisateur est abonné sur différents robots
    • Actus depuis un flux sécurisé
    • Recherche sur ISTEX
    • Récupération de la dernière mise à jour de la fiche chercheur
      • à partir des informations d'un outil interne : SIR
  • En réflexion : annuaire (pour remplacer ContactPortlet et gérer un annuaire interne et externe)

Retour d'expérience

2/2

  • Remplacement simple de petites portlets ou CMS
    • Affichage de flux RSS sécurisé, l'affichage se fait toujours correctement contrairement à l'utilisation de la CMS qui ne passe toujours correctement l'authentification et ne récupère pas toujours bien les flux
  • Problème lors de la mise à jour de uPortal, il faut mettre à jour la version de l'API SOFFIT dans chacune d'elle
    • Ce ne sera plus un problème lorsque le portail sera en prod (sauf en cas de mise à jour), mais en phase de test c'est assez fastidieux
  • Sécurisation : Test sur la soffit sympa
    • Pb de cross domain pour récupérer les informations du service REST développé coté soffit si on ne veut pas récupérer le mail dans le bearer depuis la jsp
  • Manque de doc et d'exemples concrets, avec sécurisation, etc.

Moment d'échanges

Questions/réponses


Autres sujets ?