domingo, 27 de septiembre de 2009

1ros pasos con Spring Security

Spring Security es uno de los mejores framework de seguridad web del mundo java. Esta basado en Acegi, un proyecto que luego paso a formar parte de spring. Para mi, una de sus mejores caracterísitcas es que no es invasivo, es decir, no me obliga a modificar mi código o tener alguna consideración para usarlo.

De hecho, yo empecé a construir la aplicación sin tener en cuenta ninguna cuestión de seguridad y ahora agrego este framework sin modificar el código existente. Es probable que tenga que crear código, como un provider de autenticación para que acegi pueda validar usuario y password, pero gracias al principio de diseño "programar hacia interfaces, no implementaciones" y al DI container (spring) no tengo que modificar el código ya existente, lo cual me recuerda otro principio "cerrado para modificación, abierto para extensión".

Configurar acegi era una tarea compleja, la primera vez que lo hice me llevo tiempo. Pero estos tutoriales me ayudaron mucho:

Para entender como funciona acegi:

Ahora, unos años después, leo que spring security facilitó esta tarea:

Paso a paso para configurar spring security:
1. Bajar spring security

2. Copiar spring-security-core.jar a WEB-INF/lib

3. Configurar web.xml. En este caso configuré el http filter (chain of responsability) de spring security para que verifique seguridad solamente sobre los request a /services y a *.html. El resto son recursos estáticos que no requieren seguridad:

4. Configurar spring security context:

Con esto tenemos una aplicación web con seguridad básica basada en spring security. El framework provee muchas más funcionalidades:

Saludos!

1 comentario:

Marc dijo...

Muy buen post, si os interesa yo también he montado un tutorial sobre el la configuración de Spring Security

http://www.proyectosbds.com/blog/framework-spring-v-3-1-1-spring-security-v-3-1-0-acl-mysqlconnector-bd/#more-417