Olá pessoal,
estou estudando Autenticação/Autorização JEE e surgiu uma dúvida:
- O Elemento <security-constraint> é utilizado para declarar restrições acesso aos recurso de uma aplicação web.
- O elemento <url-pattern> sinaliza os recursos que podem ser acessados para essa <security-constraint>.
- E o elemento <auth-constraint> declara os usuários que podem ter acesso a esses recursos indicados em <url-pattern>.
Então a minha dúvida é a seguinte: Acredito que podemos declarar várias tags <security-constraint> em uma mesma aplicação web (no mesmo web.xml) combinando vários recursos e usuários que podem acessá-los. Ou seja, posso ter duas <security-constraint>, uma declarando recursos que só podem ser acessados por usuários “admin” e outra <security-constraint> indicando outros recursos que podem ser acessados por usuários comuns?
Por favor, confirmem se meu raciocínio está correto ou se me confundi em algum ponto.
Obrigado pela atenção!
Kallás.
Olá moçada,
postei a dúvida e descobri a solução depois… então, vou postar aki pra esclarecer essa (rsrs).
Estudando um pouco mais, acabei fazendo uns testes e cheguei à conclusão de que a resposta é: sim! Nós podemos declarar vários <security-constraint>, no mesmo web.xml, para definir várias regras de acesso aos recursos da app web.
Exemplo:
<security-constraint>
<web-resource-collection>
<web-resource-name>Paginas de usuario comum</web-resource-name>
<url-pattern>/users/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>comum</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Paginas de administradores</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>comum</role-name>
</security-role>
<security-role>
<role-name>admin</role-name>
</security-role>
OK. Valeu!
Como faço para configurar uma página de erro? Em vez de ter a do container, quero uma página personalizada. Como faço isso no web.xml?
VVagners,
então mano, depois da tag <security-constraint> - conforme http://java.sun.com/dtd/web-app_2_3.dtd - segue um exemplo de como customizar uma página de erro:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ldapRealm</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/erro_acesso.jsp</form-error-page>
</form-login-config>
</login-config>
Vlw!