Méthodes de sécurité de servlet
Les méthodes de sécurité de servlet authenticate, login, logout, getRemoteUser, isUserInRole et getAuthType sont des méthodes de l'interface javax.servlet.http.HttpServletRequest.
authenticate
La méthode authenticate authentifie un utilisateur à l'aide du mécanisme de connexion de conteneur WebSphere Application Server configuré pour le contexte du servlet.
boolean authenticate(HttpServletResponse response))
- response
- HttpServletResponse associé à HttpServletRequest.
La méthode authenticate renvoie true lorsque l'authentification a été établie ou qu'elle a abouti.
La méthode authenticate renvoie false si l'authentification est incomplète et que le mécanisme de connexion sous-jacent a validé, dans la réponse, le message et le code d'état HTTP à renvoyer à l'utilisateur.
Une exception java.io.IOException est émise si une erreur survient lors de l'écriture de la réponse.
Une exception ServletException est émise si l'authentification a échoué et que l'appelant est chargé du traitement de l'erreur (par exemple, le mécanisme de connexion sous-jacent n'a pas établi le message et le code d'état HTTP à renvoyer à l'utilisateur).

- WebSphere Application Server renvoie le code HTTP 401 à un client.
- La méthode dépend du mécanisme de connexion de conteneur WebSphere Application Server qui est configuré pour le contexte de servlet. Par exemple, si une connexion par formulaire est définie pour ce servlet, vous devez entrer un nom d'utilisateur et un mot de passe. Le client envoie l'ID utilisateur et le mot de passe à WebSphere Application Server en vue de l'authentification.
Boolean authResultTrue = req.authenticate(response);
if (!authResultTrue) {
return;
} else {
// Use the new invocation subject to call other services.
}
login
La méthode login authentifie un utilisateur auprès de WebSphere Application Server à l'aide d'un ID utilisateur et d'un mot de passe. Si l'authentification réussit, elle crée un sujet d'utilisateur sur l'unité d'exécution et des cookies LTPA (Lightweight Third Party Authentication) (si le protocole SSO est activé).
login(java.lang.String username, java.lang.String password)
- nom d'utilisateur
- Valeur de chaîne qui correspond à l'identificateur de connexion de l'utilisateur.
- mot de passe
- Mot de passe de l'utilisateur.
Une exception ServletException est émise si le mécanisme de connexion configuré ne prend pas en charge l'authentification par nom d'utilisateur et mot de passe, si une identité a déjà été authentifiée (avant l'appel de la méthode login) ou si la validation du nom d'utilisateur et du mot de passe indiqués échoue.
Pour plus d'informations sur la modification des propriétés personnalisées de sécurité, lisez la rubrique sur la modification d'une propriété personnalisée existante dans une configuration de sécurité globale ou dans une configuration de domaine de sécurité.

Etant donné que les méthodes authenticate et login définissent le sujet d'appel comme nouveau sujet, l'élément RunAs défini par l'attribut run-As dans le descripteur de déploiement, l'annotation de sécurité ou l'annotation dynamique est ignoré.
gotchalogout
- Il efface les cookies LTPA si SSO est activé.
- Il invalide la session HTTP.
- Il supprime l'utilisateur du cache d'authentification.
- Il supprime le sujet d'utilisateur de l'unité d'exécution.
- Il efface les sujets d'appelant et d'appel.
- Il associe le type d'authentification à la valeur null.
Après la déconnexion, l'accès à une ressource Web protégée requiert une nouvelle authentification et les méthodes getUserPrincipal, getRemoteUser et getAuthType renvoient la valeur null.
logout()
Une exception ServletException est émise si la déconnexion échoue.
Types d'événement d'audit pour les méthodes authenticate, login et logout
Pour auditer les méthodes authenticate, login et logout, vous devez créer ou étendre certains fichiers de types d'événement d'audit. Ces types d'événements ne figurent pas dans les fichiers de types d'événement par défaut.
Méthode | Nom de l'événement d'audit | Résultat d'audit de l'événement |
---|---|---|
authenticate/login | SECURITY_AUTHN | SUCCESS ou FAILURE |
logout | SECURITY_AUTHN_TERMINATE | SUCCESS |
logout | SECURITY_AUTHN_TERMINATE | FAILURE |
isUserInRole
String role name) : Renvoie la valeur true si le rôle de sécurité indiqué a été affecté à l'utilisateur distant. Si aucun rôle n'a été affecté à l'utilisateur distant ou si aucun utilisateur n'est authentifié, le valeur false est renvoyée.
getRemoteUser
La méthode getRemoteUser renvoie la connexion de l'utilisateur à l'origine de la demande si l'utilisateur a été authentifié. Si l'utilisateur n'a pas été authentifié, la méthode getRemoteUser renvoie null.
getAuthType
La méthode getAuthType renvoie le nom du schéma d'authentification utilisé pour protéger le servlet. Si le servlet n'est pas protégé, la méthode getAuthType renvoie la valeur null.
- FORM
- lorsque l'authentification reposant sur un formulaire est appliquée.
- BASIC
- lorsque l'authentification de base est appliquée.
- CLIENT_CERT
- lorsque l'authentification par certificat client est appliquée.
- Si la sécurité de l'application est activée et qu'un servlet est protégé, la méthode getRemoteUser renvoie la connexion et la méthode getAuthType renvoie le schéma d'authentification configuré.
- Si la sécurité de l'application n'est pas activée, les deux méthodes renvoient la valeur null.