Skip to end of metadata
Go to start of metadata

L'installation

Les librairies utilisées

Aucun librairie non incluse de base dans UPortal n'est utilisée.

Mais si vous souhaitez utiliser CAS il fautla librairie CAS.

Mise en place du canal

Préparation du fichier de configuration CImap.xlm : mettre les renseignements relatifs aux serveurs et aux attributs importants.
Préparation du déploiement : modifier le deploy.home du fichier build.properties.
Lancement la commande ant deploy.
L'administrateur peut maintenant publier les canaux dont il a besoin en fonction des paramètres d'instanciation.

La configuration

La configuration du canal se situe à 3 niveaux :

  • dans le code source : on y retrouve les constantes sur lesquelles se base le programme.
  • dans un fichier de configuration : on y retrouve la liste des serveurs et des conditions d'attribution automatique de serveur
  • à l'instanciation du canal : il est possible de spécifier plusieurs paramètres lors de l'instanciation du canal pour le "personnaliser"

Les variables et constantes internes au canal

  • _configFilePath : c'est le chemin d'accès (relatif depuis la racine du canal) au fichier de configuration.
    exemple : private final static String _configFilePath = "/properties/CImap.xml";
  • _xslLocation : c'est le nom de la page SSL qui détermine quelle feuille XSL sera utilisée.
    exemple : private final static String _xslLocation = "CImap.ssl";
  • _cacheDefaultTimeOut : définit le temps par défaut (en seconde) de validité du cache, afin d'éviter de faire trop de requete répétitives aupres du serveur imap. Cette valeur peut être modifiée selon le canal (cf les paramètres d'instanciation).
    exemple : private final static int _cacheDefaultTimeOut = 120;
  • _displayDefaultMode : c'est le type d'affichage par défaut. 2 possiblités : "MODE_APERCU" ou "MODE_DETAIL" qui affichent soit uniquement le contenu de la boîte de réception soit le contenu de tous les dossiers. Cette valeur peut être modifiée selon le canal (cf les paramètres d'instanciation).
    exemple : private final static String _displayDefaultMode = MODE_APERCU;

Le fichier de configuration

Il est nécessaire de tenir compte des logiques des différents établissements : un seul serveur mail, un serveur pour les étudiants et un pour le personnel, un par composante .... La configuration permettra donc de déclarer plusieurs serveurs mail mais une instance du canal ne fera référence qu'à un seul serveur.

Détail du fichier de config :

  • key : Clé (le nom logique)
  • default : Défini le serveur par défaut
  • hostname : Le nom complet
  • port : Le port de connexion
  • protocol : Le protocole de connexion
  • description : Breve description du serveur, qui apparait dans le canal
  • inboxName : Le nom de la boîte de réception sur le serveur
  • inboxLocalName : Le nom à afficher pour la boîte de réception
  • urlWebmail : L'url vers le webmail avec symbole "%m" qui sera remplacé dynamiquement par le nom du dossier imap que l'on veut ouvrir.
  • Group : qui détermine à quel serveur est renvoyé une personne de ce groupe UPortal. Le groupe est caractérisé par :
    • key : identifiant du groupe UPortal
    • serverKey : Clé du serveur rattaché
    • description : Description du groupe
  • Attribut : qui associe un attribut UPortal de la personne connectée à un serveur selon une valeur précise.
    • key : Nom de l'attribut UPortal
    • value : Expression régulière que doit comporter cet attribut
    • serverKey : Clé du serveur rattaché
    • description : Description de l'attribut

Affectation du serveur :

  • A l'instanciation du canal Lors de l'instanciation du canal (ajout du canal dans son environnement), il sera possible de définir la key du serveur mail à utiliser.
    exemple : Pour ajouter un canal vers le serveur de messagerie du personnel, il faut saisir la key de ce serveur :
  • Selon un attribut Si l'utilisateur n'a pas précisé de serveur à l'instanciation, il faut détecter le serveur qui convient. Ceci est possible grâce à des affectations dynamiques en fonction de différents critères précisés en configuration. Ces critères sont de deux types :
    • appartenance de l'utilisateur à un groupe uPortal : en configuration on associe un serveur mail un groupe uPortal.
    • valeur d'un attribut spécifique : en configuration, on associe un serveur mail à une valeur d'un attribut uPortal.

Ces critères sont testés les uns après les autres et dès que l'un est vérifié, l'allocation se fait. Il est donc important de noter que l'ordre d'apparition de ces critères dans le fichier de config donne la priorité.

  • Le serveur par défaut Si aucun de ces critères ne convient, c'est le serveur défini comme " par défaut " qui sera affecté.

Exemple de fichier de configuration


<?xml version="1.0"?>
<\!DOCTYPE CanalMail SYSTEM "CImap.dtd">
<CanalMail>
<Servers>

<\!\--=========================================================================-\->
<\!\--===============Serveur de messagerie du personnel de Nancy 2=============-\->
<\!\--=========================================================================-\->
<Server
key="PERS"
default="1"
hostname="mail.univ-nancy2.fr"
port="143"
protocole="imap"
description="Serveur de messagerie du personnel de Nancy 2"
inboxName="INBOX"
inboxLocalName="Réception"
urlWebmail="https://webmail.univ-nancy2.fr/imp/mailbox.php?mailbox=%m"
/>

<\!\--=========================================================================-\->
<\!\--==============Serveur de messagerie des etudiants de Nancy 2=============-\->
<\!\--=========================================================================-\->
<Server
key="ETUD"
hostname="etudiant.univ-nancy2.fr"
port="143"
protocole="imap"
description="Serveur de messagerie des etudiants de Nancy 2"
inboxName="INBOX"
inboxLocalName="Réception"
urlWebmail="http://etumel.univ-nancy2.fr/imp/mailbox.php?mailbox=%m"
/>
</Servers>

<Attachements>
<Group
key="local.1"
serverKey="PERS"
description="Groupe personnel de Nancy 2"
/>
<Attribut
key="mail"
value=".*@univ-nancy2\.fr"
serverKey="PERS"
description="Personne ayant un adresse mail en @univ-nancy2.fr de Nancy 2"
/>
<Group
key="local.2"
serverKey="ETUD"
description="Groupe etudiants de Nancy 2"
/>
<Attribut
key="mail"
value=".*@etudiant\.univ-nancy2\.fr"
serverKey="ETUD"
description="Personne ayant un adresse mail en @etudiant.univ-nancy2.fr de Nancy 2"
/>
</Attachements>
</CanalMail>

 

Les paramètres d'instanciation

L'administrateur, lorsqu'il publie un canal, peut ajouter des paramètres d'instanciation pour changer le comportement du canal. Ici, aucun de ces paramètre n'est obligatoire.

  • serverKey: Si ce paramètre est renseigné, il doit contenir la clé d'un serveur (cf fichier de config). Sinon, le programme se base sur les attributs de l'utilisateur pour affecter un serveur.
  • useCasAuth : Par défaut le canal se base sur une authentification CAS pour la connexion imap. Mais il est possible de désactiver cette authentification, sous réserve d'une configuration d'UPortal bien adaptée (cf exemple). Le canal se basera alors sur le login et le mot de passe de UPortal. Pour se faire, il faut donner la valeur 'N' au paramètre useCasAuth.
  • cacheTimeOut: L'administrateur peut, s'il le désire, spécifier le nombre de seconde durant lequel le cache sera valide, afin d'éviter un trop grand nombre de requètes imap.
  • defaultDisplay: Mode d'affichage par défaut : "MODE_APERCU" ou "MODE_DETAIL".

Module d'envoi de mail

Il est possible depuis la version 2 du canal, d'avoir une interface pour envoyer un mail depuis le canal. Pour cela, vous devez installer lecanal "mailTo". Puis au niveau du fichier de config, vous devez préciser le nom complet de la classe de mailTo :<?xml version="1.0"?>
<!DOCTYPE CanalMail SYSTEM "CImap.dtd">
<CanalMail classSendMail="org.esupportail.portal.channels.CMailTo.CMailToServant">
<Servers>...Redeployez le canal imap.

A ce moment là, sur l'apercu de la boite mail un bouton est apparu : "envoyer un mail".

Exemples d'utilisation

Ces exemples montrent les différentes applications du canal en fonction des paramètres d'instanciation.

L'utilisateur choisi le serveur de référence

Pour laisser l'utilisateur choisir son serveur, il faut que l'administrateur publie un canal en laisser la possibilité de saisir la valeur du paramètre "serverKey". Par contre il n'est pas possible de proposer une liste de valeur ce type d'implémentation s'adresse à des utilisateurs avertis. Dans la boîte de dialogue qui s'ouvre, il peut y avoir une valeur par défaut qui, comme son nom l'indique, peut être modifiée.
 

L'administrateur déclare un canal par serveur

L'administrateur peut déclarer par exemple un canal "boîte aux lettres du personnel". Pour cela, le paramètre "serverKey" doit être rempli avec la clé du serveur du personnel et doit être non saisissable par l'utilisateur. L'utilisateur qui s'ajoute ce canal, sera automatiquement relié au serveur du personnel. Donc dans la même logique, l'adminsitrateur peux publier un canal pour le serveur étudiant, un pour le serveur du personnel.... etc.

Point de vue de l'administrateur :


 

Point de vue de l'utilisateur :

Une fois le canal inséré, l'utilisateur voit :

mais il peux afficher le détail et là il optient :

Si l'utilisateur veut ouvrir un dossier, il lui suffit de cliquer sur le nom de celui-ci et une fenetre s'ouvrira dans le webmail directement dans le bon dossier.

Création d'un canal sans authentification cas

En plus de préciser le serveur, il est possible de spécifier d'où proviennent les informations de LOGIN / MOT DE PASSE. Par défaut elles découlent de l'authentification CAS. Mais en ajoutant le paramètre "useCasAuth", non saisissable par l'utilisateur et avec la valeur "N", ce sera les LOGIN ET MOT DE PASSE de connexion à UPortal qui serviront. Ceci va permettre de tester le canal avec un serveur imap non cassifié.
Pour utiliser l'authentification LDAP et pour garder le mot de passe en cache, il faut mettre ces lignes dans le fichier security.properties :root.ldap=org.jasig.portal.security.provider.CacheLdapSecurityContextFactory
root.simple=org.jasig.portal.security.provider.CacheSecurityContextFactory
root.cas=org.jasig.portal.security.provider.YaleCasContextFactory

  • No labels