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

Nota: Os métodos de segurança de autenticação, login e logout servlet são novos para o Java™ Servlet 3.0 nesse release do WebSphere Application Server.

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.

A sintaxe do método de autenticação é a seguinte:
boolean authenticate(HttpServletResponse response))
O exemplo anterior utiliza o seguinte elemento:
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).

Evitar Problemas Evitar Problemas: Quando o método de autenticação é chamado, fique ciente do seguinte:
  • 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.
Importante: Certifique-se de que o método de autenticação retorna true antes de usar o novo assunto para chamar outro serviço. Por exemplo:
Boolean authResultTrue = req.authenticate(response);
		if (!authResultTrue) {
	return;
} else {
	// Use o novo assunto de chamada para chamar outros serviços.
	      }			
 
gotcha

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).

A sintaxe do método de login é a seguinte:
login(java.lang.String username, java.lang.String password)
O exemplo anterior utiliza os seguintes elementos:
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.

Nota: Você pode configurar a propriedade customizada de segurança com.ibm.websphere.security.webAlwaysLogin para true se ela ainda autenticar para o aplicativo WebSphere com nome de usuário e senha, mesmo se já tiver sido autenticado.

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.

Nota: O método de login sempre utiliza ID do usuário e senha para autenticar o servidor de aplicativos WebSphere e até mesmo as informações SSO que estão presentes no HttpServletRequest.
Evitar Problemas Evitar Problemas: Os métodos de autenticação e login definem o assunto de chamada para o novo assunto. Se o assunto do responsável pela chamada for nulo, então ele define o assunto do responsável pela chamada para o novo assunto. Se o assunto do responsável pela chamada não for nulo, então o assunto do responsável pela chamada não é definido para novo assunto.

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.

gotcha

logout

O método de logout registra a saída do usuário do WebSphere Application Server e invalida a sessão HTTP. Durante esse processo, o WebSphere Application Server completa os seguintes processos:
  • 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.

A sintaxe do método de logout é a seguinte:
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.

Tabela 1. Tipos de Evento de Auditoria para Métodos de Autenticação, Login e Logout.

Os tipos de evento de auditoria necessários para os métodos de autenticação, login e logout sã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.

Os esquemas de autenticação usados são:
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
Nota:
Para ambos os métodos, getRemoteUser e getAuthType, os dados retornados dependem de se a segurança está ativada no servidor de aplicativos onde o servlet está implementado. Existem as seguintes possibilidades:
  • 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.

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_secgetru
Nome do arquivo: rsec_secgetru.html