Opa,
Galera, iniciei um sisteminha utilizando jsp/sevlets, implementei um controlador central que distribui os requests para suas actions, depois implementei o JDBCRealm do Tomcat, tá funcionando que é uma beleza, mas o problema é o seguinte:
Certas actions do meu controlador, eu gostaria de limitar a outros roles, porém a url do controlador (/controller) já está no web.xml com a role usuario, e eu gostaria que alguns actions tivessem o role admin ou manager. Eu não gostaria de nos actions ficar pegando o usuário da sessão e colocando num if, tipo:
if(usuario.getRole.equals("admin"))
Alguém tem alguma sugestão ?
Meu web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>PetController</servlet-name>
<display-name>PetController</display-name>
<description>Servlet Controlador</description>
<servlet-class>br.com.dogato.controle.PetController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PetController</servlet-name>
<url-pattern>/controller</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/controller?actionType=login</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<security-constraint>
<web-resource-collection>
<web-resource-name>AnyName</web-resource-name>
<url-pattern>/controller</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<security-role>usuario</security-role>
<security-role>manager</security-role>
<security-role>admin</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
</web-app>
Valeu!