Gestion des rôles avec on-load et CAS

Esup_mondossierweb gère deux types d’utilisateur (étudiant et enseignant). Nous allons expliquer comment nous gérons l’accès aux différentes parties de l’application grâce à on-load et CAS.

La page d’accueil par défaut de l’application est stylesheets/welcome.xhtml. Elle est ‘protégée’ par le composant on-load qui redirige (via la méthode ‘accueil’ du SessionController) vers etu/welcome.xhtml ou ens/welcome.xhmtl suivant le type de l’utilisateur (voir le post ‘Redirection depuis l’accueil selon le type utilisateur’).

En plus de cela, on-load intercepte les accès aux pages se trouvant dans les répertoires etu/ et ens/ contenant respectivement les pages dédiées aux étudiants et aux enseignants.

Quand on tente d’accéder à une page de ens/ on-load lance la méthode isEns() du SessionController. Cette méthode retourne ‘null’ (on a accès à la page désirée) si l’utilisateur est un enseignant, ‘error’ si l’utilisateur est un étudiant, et ‘error-connexion’ si il n’est ni étudiant, ni enseignant donc non connecté.

’error’ renvoit vers la page error/acces-interdit.xhtml, qui affiche un message d’erreur et un lien vers la méthode ‘accueil’ du SessionController.

‘error-connexion’ revoit vers la page error/connexion.xhtml qui affiche un message d’erreur et un lien pour s’authentifier. Ce lien est en fait un lien vers la page ‘login.xhtml’ qui est ‘sécurisée’ par le filtre CAS ; l’utilisateur est donc automatiquement dirigé vers la page d’authentification de CAS. Une fois authentifié, l’utilisateur est donc redirigé vers la page login.xhtml qui redirige automatiquement (grâce au on-load) vers la méthode ‘accueil’ du SessionController.

Quand on tente d’accéder à une page de etu/ on-load lance la méthode ‘isLoggue’ du SessionController. Cette méthode retourne ‘null’ (on a accès à la page désirée) si l’utilisateur est reconnu en tant qu’enseignant ou étudiant, ‘error-connexion’ sinon.

sécurité et on-load

En plus de cette protection nous avons placé un « security constraint » (dans le web.xml) qui bloque l’accès direct aux pages.

<security-constraint>

<display-name>Protection of the raw XHTML pages</display-name>

<web-resource-collection>

<web-resource-name>Raw JSF XHTML Pages</web-resource-name>

<description>

All the XHTML pages of the application.

</description>

<url-pattern>/stylesheets/*</url-pattern>

</web-resource-collection>

<auth-constraint>

<description>No roles, so no direct access</description>

</auth-constraint>

</security-constraint>


Une réponse vers «Gestion des rôles avec on-load et CAS»

  1. Authentification de l’utilisateur « Mon Dossier Web Dit:

    [...] avons déjà vu dans un des posts précédents intitulé “Gestion des rôles avec on-load et CAS” que le composant jsf ‘on-load’ sécurisait la page d’accueil de l’application en [...]


Laisser un commentaire