Métodos de seguridad de servlet
Los métodos de seguridad de servlet authenticate, login, logout, getRemoteUser, isUserInRole y getAuthType son métodos de la interfaz javax.servlet.http.HttpServletRequest.
authenticate
El método authenticate autentica un usuario mediante el mecanismo de inicio de sesión de contenedor de WebSphere Application Server configurado para el contexto de servlet.
boolean authenticate(HttpServletResponse response))
- response
- HttpServletResponse asociado con HttpServletRequest.
El método authenticate devuelve true cuando la autenticación se ha establecido o ha resultado satisfactoria.
El método authenticate devuelve false si la autenticación resulta incompleta y el mecanismo de inicio de sesión subyacente ha confirmado, en la respuesta, que se han devuelto al usuario el mensaje y el código de estado HTTP.
Se genera un error java.io.IOException si se produce algún error durante la grabación de la respuesta.
Si la autenticación falla, se produce una excepción ServletException, y el llamante es el responsable de manejar el error (por ejemplo, el mecanismo de inicio de sesión subyacente no ha establecido el mensaje y el código de estado HTTP que se debe devolver al usuario).

- WebSphere Application Server devuelve el código HTTP 401 a un cliente.
- El método depende del mecanismo de inicio de sesión de contenedor de WebSphere Application Server que se haya configurado para el contexto de servlet. Por ejemplo, si tiene un inicio de sesión de formulario definido para este servlet, se solicita un nombre de usuario y una contraseña. El cliente envía el ID de usuario y la contraseña a WebSphere Application Server para la autenticación.
Boolean authResultTrue = req.authenticate(response);
if (!authResultTrue) {
return;
} else {
// Utilice el nuevo sujeto de invocación para llamar a otros servicios.
}
login
El método login autentica un usuario en WebSphere Application Server con un ID de usuario y una contraseña. Si la autenticación es satisfactoria, se crea un sujeto de usuario en la hebra y cookies LTPA (Lightweight Third Party Authentication) (si el inicio de sesión único (SSO) está habilitado).
login(java.lang.String username, java.lang.String password)
- nombre de usuario
- Valor de serie que se corresponde con el identificador de inicio de sesión del usuario.
- password
- Contraseña del usuario.
Se produce una excepción ServletException si el mecanismo de inicio de sesión configurado no soporta la autenticación de nombre de usuario y contraseña, si ya se ha autenticado una identidad (antes de la llamada al inicio de sesión) o si la validación del nombre de usuario y la contraseña proporcionados no es correcta.
Para obtener más información acerca de cómo modificar las propiedades personalizadas de seguridad, lea el artículo que trata sobre la modificación de una propiedad personalizada existente en una configuración de seguridad global o en una configuración de dominio de seguridad.

Dado que los métodos authenticate y login establecen el sujeto de la invocación en el sujeto nuevo, se ignoran el RunAs definido mediante el atributo run-As en el descriptor de despliegue, la anotación de seguridad y la anotación dinámica.
gotchalogout
- Borra las cookies LTPA si SSO está habilitado
- Invalida la sesión HTTP
- Elimina el usuario de la memoria caché de autenticación
- Elimina el sujeto de usuario de la hebra
- Borra al llamante y a los sujetos de invocación
- Establece el tipo de autenticación en null.
Después de cerrar la sesión, el acceso a un recurso web protegido requiere la reautenticación y los métodos getUserPrincipal, getRemoteUser y getAuthType devuelven null.
logout()
Se produce una excepción ServletException si no se puede finalizar la sesión.
Tipos de sucesos de auditoría para los métodos authenticate, login y logout
Para poder auditar los métodos authenticate, login y logout, debe crear o ampliar algunos archivos de tipo de suceso de auditoría. Estos tipos de suceso no forman parte de los archivos de tipo de suceso predeterminados.
Método | Nombre del suceso de auditoría | Resultado de auditoría del suceso |
---|---|---|
authenticate/login | SECURITY_AUTHN | SUCCESS y/o FAILURE |
logout | SECURITY_AUTHN_TERMINATE | SUCCESS |
logout | SECURITY_AUTHN_TERMINATE | FAILURE |
isUserInRole
(String role name): devuelve true si al usuario remoto se le ha otorgado el rol de seguridad especificado. Si al usuario remoto no se le otorga el rol especificado o si no hay ningún usuario autenticado, devuelve el valor false.
getRemoteUser
El método getRemoteUser devuelve el inicio de sesión del usuario que realiza la solicitud si el usuario se ha autenticado. Si el usuario no se ha autenticado, el método getRemoteUser devuelve null.
getAuthType
El método getAuthType devuelve el nombre del esquema de autenticación que se utiliza para proteger el servlet. Si el servlet no está protegido, el método getAuthType devuelve null.
- FORM
- Cuando se utiliza la autenticación basada en formulario.
- BASIC
- Cuando se utiliza la autenticación básica.
- CLIENT_CERT
- Cuando se utiliza la autenticación de certificados de cliente.
- Si se ha habilitado la seguridad de la aplicación, y se ha protegido un servlet, el método getRemoteUser devuelve el inicio de sesión y el método getAuthType devuelve el esquema de autenticación configurado.
- Si la seguridad de las aplicaciones no está habilitada, ambos métodos devuelven null.