Vous êtes sur la page 1sur 11

Soffits

Université Polytechnique Hauts-de-France


Créer une soffit... Zimbra

Pourquoi les soffits

 Spring 5 :
 Abandon de l'API Portlet

 Solutions :
 Soffits

 Systèmes sécurisés qui utilisent les technos récentes (JWT, etc)

 Web component

 Documentation :
 https://jasig.github.io/uPortal/developer/soffits/

 Sécurisation des échanges entre le client, l'API REST et uPortal


 Plusieurs solutions, mais la soffit est une solution simplifiée

2
Créer une soffit
3
Créer une soffit... Zimbra

Création du projet

 https://jasig.github.io/uPortal/developer/soffits/
 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 : …

4
Créer une soffit... Zimbra

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

5
Créer une soffit... Zimbra

Configurations

6
Créer une soffit... Zimbra

Compilation - test

 Compiler le projet
 ./gradlew assemble

 Déployer le projet dans un tomcat


 Ajouter les soffits dans uPortal (portlet-definition)

7
Créer une soffit... Zimbra

Exemple
 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)
 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
8
Créer une soffit... Zimbra

Sécurisation

● https://jasig.github.io/uPortal/developer/soffits/securing_apis.html
 Ajouter la classe SecurityConfiguration

9
Créer une soffit... Zimbra

Retour d'expérience

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

10
Créer une soffit... Zimbra

Retour d'expérience - suite

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

11