Métodos de Segurança do Servlet
Os métodos de segurança de autenticação, login, logout, getRemoteUser, isUserInRole e getAuthType servlet são métodos da interface javax.servlet.http.HttpServletRequest.
autenticação
O método de autenticação autentica um usuário para usar o mecanismo de login do contêiner do WebSphere Application Server configurado para o contexto de servlet.
boolean authenticate(HttpServletResponse response))
- response
- O HttpServletResponse associado ao HttpServletRequest.
O método de autenticação retorna verdade quando a autenticação foi estabelecida ou a autenticação está bem-sucedida.
O método de autenticação retorna falso se a autenticação estiver incompleta e o mecanismo de login subjacente tiver confirmado, na resposta, a mensagem e o código de status HTTP a serem retornados para o usuário.
Um java.io.IOException ocorre se ocorrer um erro ao gravar a resposta.
Uma ServletException ocorre se a autenticação falhar, e o responsável pela chamada é responsável por lidar com esse erro (por exemplo, o mecanismo de login não estabeleceu a mensagem e o código de status HTTP a serem retornados ao usuário).

- O WebSphere Application Server retorna o código HTTP 401 a um cliente.
- O método depende do mecanismo de login do contêiner WebSphere Application Server que está configurado par ao contexto de servlet. Por exemplo, se você tiver um login de formulário definido para esse servlet, ele pede por um nome de usuário e senha. O cliente envia o ID do usuário e senha ao WebSphere Application Server para autenticação.
Boolean authResultTrue = req.authenticate(response);
if (!authResultTrue) {
return;
} else {
// Use o novo assunto de chamada para chamar outros serviços.
}
login
O método de login autentica um usuário ao WebSphere Application Server com ID do usuário e senha. Se a autenticação for bem-sucedida, ela cria um assunto do usuário no encadeamento e em cookies de Lightweight Third Party Authentication (LTPA) (se conexão única (SSO) estiver ativada).
login(java.lang.String username, java.lang.String password)
- nome do usuário
- O valor de sequência que corresponde ao Identificador de login do usuário.
- senha
- A senha do usuário.
Um ServletException ocorre se o mecanismo de login configurado não suportar a autenticação de nome de usuário e senha, se uma identidade já tiver sido autenticada (antes da chamada de login), ou se a validação do nome de usuário e senha fornecida falhar.
Para obter mais informações sobre como modificar as propriedades customizadas, leia o artigo Modificando uma propriedade customizada existente em uma configuração de segurança global ou em uma configuração de domínio de segurança.

Como os métodos de autenticação e login definem o assunto da chamada para o novo assunto, os RunAs definidos pelo atributo Executar-Como no descritor de implementação, a anotação de segurança ou anotação dinâmica são ignorados.
gotchalogout
- Limpa os cookies de LTPA se SSO estiver ativada
- Invalida a sessão HTTP
- Remove o usuário do cache de autenticação
- Remove o assunto do usuário a partir do encadeamento
- Limpa os assuntos do responsável pela chamada e chamada
- Configura o tipo de autenticação para nulo
Depois de desconectado, o acesso a um recurso da Web protegido requer reautenticação e os métodos getUserPrincipal, getRemoteUser e getAuthType retornam nulo.
logout()
Um ServletException ocorre se o logout falhar.
Tipos de evento de auditoria para os métodos de autenticação, login e logout
Para auditar os métodos de autenticação, login e logout, você deve criar ou estender alguns arquivos do tipo evento de auditoria. Esse tipo de evento não faz parte dos arquivos de tipo de evento padrão.
Método | Nome do evento de auditoria | Resultado do evento de auditoria |
---|---|---|
autenticar/login | SECURITY_AUTHN | SUCCESS e ou FAILURE |
logout | SECURITY_AUTHN_TERMINATE | SUCCESS |
logout | SECURITY_AUTHN_TERMINATE | FAILURE |
isUserInRole
(Nome da função String): Retorna true se o usuário remoto tiver a função de segurança especificada concedida. Se o usuário remoto não tiver a função especificada concedida ou se nenhum usuário for autenticado, retorna false.
getRemoteUser
O método getRemoteUser retorna o login do usuário que faz o pedido se o usuário tiver sido autenticado. Se o usuário não tiver sido autenticado, o método getRemoteUser retorna nulo.
getAuthType
O método getAuthType retorna o nome do esquema de autenticação que é usado para proteger o servlet. Se o servlet não estiver protegido, o método getAuthType retorna nulo.
- FORM
- ao a autenticação baseada em formulário é usada
- BASIC
- quando autenticação básica é usada
- CLIENT_CERT
- quando autenticação por certificado de cliente é usada
- Se a segurança do aplicativo estiver ativada e um servlet estiver protegido, o método getRemoteUser retorna o login e o método getAuthType retorna o esquema de autenticação configurado.
- Se a segurança do aplicativo não estiver ativada, os dois métodos retornam nulo.