Configurando o suporte de Java Servlet 3.1 para segurança
O Liberty suporta todas as atualizações de segurança, conforme definido na especificação Java™ Servlet 3.1
Sobre esta Tarefa
Aproveite os recursos Java Servlet 3.1 no Liberty.
Procedimento
- Adicionar o recurso
servlet-3.1no arquivoserver.xml:<feature>servlet-3.1</feature> - Determine qual das seguintes funções do Servlet Java 3.1 você deseja usar:
- Especifique autocomplete=off no formulário de login.Ao usar HTML para uma página de login do formulário, configure o campo de formulário da senha para autocomplete="off" para desativar o preenchimento automático nas senhas no navegador da Web. Por exemplo:
<form method="POST" action="j_security_check"> <input type="text" name="j_username"> <input type="password" name="j_password" autocomplete="off"> </form> - Especifique todas as restrições de segurança de autenticação (**).O nome da função especial ** indica qualquer usuário autenticado. Quando ** é exibido em uma restrição de autorização, se o usuário for autenticado, esse usuário terá acesso aos métodos que são especificadas na restrição. Os usuários não precisam ser mapeados para esta função nas ligações do aplicativo. Por exemplo:
<security-constraint id="SecurityConstraint_1"> <web-resource-collection id="WebResourceCollection_1"> <web-resource-name>Protected with ** role</web-resource-name> <url-pattern>/AnyAuthSecurityConstraint</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint id="AuthConstraint_1"> <role-name>**</role-name> </auth-constraint> </security-constraint>Quando o método
isUserInRole()é chamado como um nome de função de**,isUserInRole()retorna true se o usuário está autenticado. Se**for uma função definida na configuração em uma função de segurança, ele não será tratado como qualquer função especial de usuário autenticado. O usuário deve ser mapeado para essa função nas ligações de aplicativos paraisUserInRoleretornar true. - Especifique a sinalização
deny-uncovered-http-methodsem arquivosweb.xml.Se o elementodeny-uncovered-http-methodsestiver especificado no arquivoweb.xml, o contêiner nega quaisquer métodos HTTP descobertos que não são enumerados dentro da restrição de segurança combinada para um padrão de URL que é a melhor correspondência para a solicitação de URL. Um código de status403 (SC_FORBIDDEN)é retornado. Por exemplo:<servlet-mapping id="ServletMapping_1"> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyURLPattern</url-pattern> </servlet-mapping> <deny-uncovered-http-methods/> <!-- SECURITY CONSTRAINTS --> <security-constraint id="SecurityConstraint_1"> <web-resource-collection id="WebResourceCollection_1"> <web-resource-name>Protected with Employee or Manager roles</web-resource-name> <url-pattern>/MyURLPattern</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint id="AuthConstraint_1"> <role-name>Employee</role-name> <role-name>Manager</role-name> </auth-constraint> </security-constraint>Se o elementodeny-uncovered-http-methodsfor especificado no arquivoweb.xml, uma mensagem será registrada no arquivomessages.logpara cada padrão de URL em cada servlet, indicando os métodos descobertos com uma nota que esses métodos descobertos estão desprotegidos e não acessíveis. Por exemplo:For URL MyURLPattern in servlet MyServlet, the following HTTP methods are uncovered, and not accessible: DELETE OPTIONS HEAD PUT TRACESe o elementodeny-uncovered-http-methodsnão for especificado no arquivoweb.xml, uma mensagem será registrada no arquivomessages.logpara cada padrão de URL em cada servlet, indicando os métodos descobertos com uma nota que esses métodos descobertos estão desprotegidos e acessíveis. Por exemplo:For URL MyURLPattern in servlet MyServlet, the following HTTP methods are uncovered, and accessible: DELETE OPTIONS HEAD PUT TRACE
- Especifique autocomplete=off no formulário de login.