Projets
Pages enfant
  • 3.14 Authentification

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Remarque
titleA compléter

Shib

esup-commons n'authentifie pas les utilisateurs en tant que tel. Il est en revanche capable, en s'appuyant sur un service d'authentification externe, de savoir quel est l'utilisateur connecté à l'application web en cours.

Plusieurs moyens sont possibles pour cela. esup-commons s'appuie sur un service d'authentification externe, le bean authenticationService, pour authentifier les utilisateurs. Ce bean, qui doit implémenter l'interface AuthenticationService, possède une méthode getCurrentUserId(), qui renvoie l'identifiant de l'utilisateur courant.Le bean authenticationService est défini dans /properties/auth/auth.xml. Plusieurs classes implémentant l'interface AuthenticationService sont disponibles dans le package org.esupportail.commons.services.authentication, elles sont décrites ci après.

...

Sommaire :

Sommaire
maxLevel3

...

Modes disponibles

CAS

La classe CasFilterAuthenticator, renvoie l'identifiant de l'utilisateur authentifié par le filtre J2EE CAS :

Bloc de code

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.CasFilterAuthenticator" />

Pour que cela fonctionne, il faut bien sûr que le filtre CAS soit correctement configuré.

Portail (JSR-168)

La classe PortalAuthenticator renvoie l'identifiant de l'utilisateur connecté au portail, selon JSR-168 :

Bloc de code

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.PortalAuthenticator" >
  <property name="uidPortalAttribute" value="uid" />
</bean>

La propriété uidPortalAttribute est le nom de l'attribut du portail qui sera considéré comme l'identifiant de l'utilisateur. Il doit être déclaré dans le fichier /webapp/WEB-INF/portlet.xml.Cette implémentation ne fonctionne qu'en mode portlet.

Mixte CAS / Portail

La classe PortalOrCasFilterAuthenticator s'appuie d'abord sur JSR-168, puis sur le filtre CAS (fonctionne à la fois en mode portlet ou servlet) :

Bloc de code

<bean
    id="authenticationService"
    class="org.esupportail.commons.authentication.PortalOrCasFilterAuthenticator" >
  <property name="uidPortalAttribute" value="uid" />
</bean>

Cette implémentation fonctionne à la fois en mode portlet et en mode servlet, il n'est donc pas nécessaire de la changer lorsque l'on change de mode de déploiement.

Remote user

La classe RemoteUserAuthenticator s'appuie sur la variable REMOTE_USER :

Bloc de code

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.RemoteUserAuthenticator" />

L'utilisation de cette classe n'est pas recommandée.

Authentification hors connexion

La classe OfflineFixedUserAuthenticator renvoie toujours le même identifiant.

Bloc de code

<bean
    id="authenticationService"
    class="org.esupportail.commons.services.authentication.OfflineFixedUserAuthenticator" >
  <property name="userId" value="paubry" />
</bean>

Elle peut être utilisée lorsque l'on travaille à la mise au point hors connexion (pratique dans le train).

Authentification en mode batch

En mode batch, la définition du bean authenticationService n'est pas obligatoire.

Utilisation du service d'authentification

Le service d'authentification s'appelle de la manière suivante :

Bloc de code

String uid = authenticationService.getCurrentUserId();

Si uid est null, alors l'utilisateur n'est pas authentifié.

...