¿Cómo implementar el control de usuario en mi aplicación?
japochino1 Feb 26, 2012 3:35 PMHola a todos
Estoy haciendo una aplicacion java ee 6 y quiero hacer uso de jaas para la seguridad de los usuarios (login, permisos, etc.)
La idea es que tengo una base de datos con la títpica tabla usuarios. Uno de los campos de la tabla es idtipo, clave foránea que me indica si el usuario es gestor u ojeador (coincidiendo con los roles que luego defino)
Creo que casi lo tengo pero me falta un último empujón.
Tengo un formulario de login para logar a los usuarios cuando acceden a un recurso que requiera algún rol específico.
en mi web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>Areas protegidas</web-resource-name>
<url-pattern>/pagina.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>gestor</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>rol gestor que tendrá acceso total</description>
<role-name>gestor</role-name>
</security-role>
<security-role>
<description>rol que permite acceso únicamente consultivo</description>
<role-name>ojeador</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/index.jsf</form-login-page>
<form-error-page>/errorLogin.xhtml</form-error-page>
</form-login-config>
</login-config>
Cuando solicito la pagina protegida me redirige correctamente al login (index.jsf), pero claro cuando hago el login, supongo que tendré que reflejar de alguna manera que el usuario que se loga corresponde al role gestor u ojeador. Eso es lo que no se hacer. De esta manera cuando una vez correctamente logado, pido la pagina protegido pues me manda al login otra vez.
Muchas gracias
<web-resource-collection>
<web-resource-name>Areas protegidas</web-resource-name>
<url-pattern>/peticiones_alta.jsf</url-pattern>
<!-- <http-method>PUT</http-method> -->
</web-resource-collection>
<auth-constraint>
<role-name>gestor</role-name>
</auth-constraint>
</security-constraint>
<!-- Security roles usados en al aplicacion -->
<security-role>
<description>rol gestor que tendrá acceso total</description>
<role-name>gestor</role-name>
</security-role>
<security-role>
<description>rol canal sur que permite acceso únicamente consultivo</description>
<role-name>canalsur</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<!-- <realm-name>labanda</realm-name> Cuando usamos BASIC -->
<form-login-config>
<form-login-page>/index.jsf</form-login-page>
<form-error-page>/errorLogin.xhtml</form-error-page>
</form-login-config>
</login-config>