1.6. Restrições de Segurança do Conteúdo da Web

A segurança é definida pelas funções que permitem o acesso ao conteúdo por um padrão de URL que identifica o conteúdo protegido num aplicativo da web. Este conjunto de informação é declarado pelo uso do elemento web.xml security-constraint.
elemento <security-constraint>

Figura 1.6. elemento <security-constraint>

O conteúdo a ser protegido é declarado usando um ou mais elementos <web-resource-collection>. Cada elemento <web-resource-collection> contém uma série opcional de elementos <url-pattern> seguidos por uma série de elementos <http-method>. O valor do elemento <url-pattern> especifica um URL padrão relacionado que solicita a combinação de um URL para que a solicitação corresponda a uma tentativa de acesso ao conteúdo protegido. O valor do elemento <http-method> especifica um tipo de solicitação HTTP para permissão.
O elemento <user-data-constraint> opcional especifica as solicitações para a camada de transporte do cliente à conexão do servidor. A solicitação pode ser para a integridade do conteúdo (prevenindo as violações de dados no processo de comunicação) ou para confidencialidade (prevenindo a leitura enquanto em trânsito). O valor do elemento <transport-guarantee> especifica o grau pelo qual a comunicação entre o cliente e o servidor deve ser protegida. Os valores dos mesmos são NONE, INTEGRAL e CONFIDENTIAL. O valor NONE significa que o aplicativo não requer quaisquer garantias de transporte. O valor INTEGRAL significa que o aplicativo requer que os dados sejam enviados entre o cliente e o servidor a ser enviado de tal maneira, sendo que eles não possam ser alterados em trânsito. O valor CONFIDENTIAL significa que o aplicativo requer que os dados sejam transmitidos de maneira que previnam outras entidades de observar os conteúdos de transmissão. Na maioria dos casos, a presença do aviso INTEGRAL ou CONFIDENTIAL indica que o uso do SSL é requerido.
O elemento <login-config> opcional é usado para configurar o método de autenticação que deve ser usado, o nome realm que deve ser usado pelo aplicativo e os atributos que são necessários pelo mecanismo de logon do formulário.
elemento <login-config>

Figura 1.7. elemento <login-config>

O elemento <auth-method> filho especifica o mecanismo de autenticação pelo aplicativo da web. O usuário deve realizar a autenticação usando o mecanismo configurado, como pré-requisito para ganho de acesso a quaisquer recursos da web que são protegidos por uma restrição de autorização. Os valores <auth-method> legais são BASIC, DIGEST, FORM e CLIENT-CERT. O elemento filho <realm-name> especifica o nome realm para uso no HTTP básico e autorização de resumo. O elemento filho <form-login-config> especifica o logon assim como as páginas de erro que devem ser usadas no logon baseado no formulário. O form-login-config e seus elementos filhos são ignorados, caso o valor <auth-method> não seja FORM.
O Exemplo 1.6, “fragmento do descritor web.xml” indica que qualquer URL sob o caminho /restricted do aplicativo da web requer uma função AuthorizedUser. Não existe garantia de transporte solicitada e método de autenticação usado para obtenção da identidade do usuário de autenticação HTTP BÁSICA.