La experiencia aculada en nuestros proyectos nos ha llevado a la conclusión de que para configurar correctamente la seguridad de la aplicación y no tener problemas con las URL lo mejor es agrupar los patrones.
Nuestro sistema de seguridad consistía en que nosotros hacemos login contra un CAS server y una vez obtenida la autenticación este debía de redirigirnos a la aplicación a la que tenemos acceso. El problema era que aleatoriamente nos daba el acceso o no, generalmente nada más hacer log-in no nos daba acceso pero si recargábamos la página si nos daba acceso.
Nuestra configuración, erronea e incial era la siguiente:
<sec:http pattern="/messagebroker/**" security="none"/> <sec:http pattern="*.swf" security="none"/> <sec:http pattern="*.html" security="none"/> <sec:http entry-point-ref="entryPoint" auto-config="false" pattern="/*"> <sec:intercept-url pattern="/**" access="ROLE_AUTHENTICATED"/> </sec:http>
La solución a este problema fue juntar los patrones e incluso segregarlos un poco más y diferenciar la distintas URLs
<sec:http pattern="*.swf" security="none"/> <sec:http pattern="*.html" security="none"/> <sec:http pattern="/**"> <sec:anonymous enabled="true"/> <sec:intercept-url pattern="/messagebroker/**" access="ROLE_ANONYMOUS"/> <sec:intercept-url pattern="/access/login" access="ROLE_ANONYMOUS"/> <sec:intercept-url pattern="/access/loginsuccess" access="ROLE_AUTHENTICATED"/> <sec:form-login login-page="/access/login"/> </sec:http>
No hay comentarios:
Publicar un comentario