Groupe 1B (SSO et gestion des autorisations)

Date de création : octobre 2003
Dernière modification : 12 octobre 2004
Diffusion : internet

Librairie CAS Pour uPortal

Téléchargment :

Ce module est maintenant inclus dans les distribution esup (en CVS module Utils)

But :

Cette librairie a pour but de faciliter l'utilisation de cas dans uPortal. Elle sera surtout utilisée par les canaux afin de dialoguer avec le serveur CAS.

Principe de fonctionnement :

La librarie CAS est constituée d'une classe implémentant des méthodes statiques et des classes d'exceptions.

Installation :

Adapter le build.properties (deploy.home et servlet.jar)

puis faire ant et enfin ant deploy

Méthode disponible :

Recupération d'un Proxy Ticket (PT) :

Rappel :

uPortal est un proxy CAS. Lors de l'authentification CAS (pour uPortal), on obtient un Proxy Granting Ticket (PGT). Ce PGT est utile pour un fonctionnement n-tiers. Il sert a obtenir un Proxy Ticket (PT) qui servira au service tiers pour authentifier l'utilisateur auprès de CAS.

Méthode :

La méthode get_pt permet de récupérer un PT CAS.

Elle peut être appelée de deux mannières différentes :

Avec :

Principe de fonctionnement :

Cette méthode recupère un PT CAS. Pour ce faire elle doit :

Exceptions rapportées:

Plusieurs type d'exception peut être déclenchées lors de la récupération d'un PT.
Ces exceptions héritent de CASGenericException et sont découpées de la sorte :

Chaque exception peut renvoyer plusieurs codes erreurs afin de faciliter son traitement (ces codes sont des constantes de CASGenericException) :

Exemple d'utilisation :

import org.esupportail.portal.utils.*;
import org.esupportail.portal.utils.CASExceptions.*;
...
...
try{
   PT=getMyPT();
}
catch(CASTempException exp){
   Exception="TEMPORAIRE : CASTempException";
   CodeException=exp.getExceptionCode();
   MsgException=exp.getMessage();
   LogService.log(LogService.ERROR, "CGetPT::getMyPT() : Exception de type    temporaire (Temp): "+exp.getExceptionCode()+" "+exp.getMessage());

   if(CodeException==CASGenericException.CODE_CAS_BAD_PGT){
LogService.log(LogService.DEBUG, "ERREUR Il faudrait aller rechercher un PGT."); // remonte l'exception à uPortal qui l'affiche dans le canal CError throw new PortalException("ERREUR remontée à l'uilisateur : Ceci est une ERREUR gérer dans uPortal, Il faudrait aller rechercher un PGT");
} } catch(CASPermException exp){ Exception="PERMANENTE : CASPermException"; CodeException=exp.getExceptionCode(); MsgException=exp.getMessage(); LogService.log(LogService.ERROR, "CGetPT::getMyPT() : Exception de type permanent (Perm): "+exp.getExceptionCode()+" "+exp.getMessage()); } catch(CASGenericException exp){ Exception="GENERIC : CASGenericException"; CodeException=exp.getExceptionCode(); MsgException=exp.getMessage(); LogService.log(LogService.ERROR, "CGetPT::getMyPT() : Exception de type générique (Generic): "+exp.getExceptionCode()+" "+exp.getMessage()); }

 

A venir :


Rafraichissement de PGT : le but est d'avoir une procédure qui permet d'aller rechercher un PGT. Ceci implique un redirection du navigateur utilisateur (pas si simple dans uPortal)