Además, en las versiones más recientes de Spring Security, la configuración de CSRF ha cambiado, y ahora se puede manejar de manera más flexible.
Si estás utilizando una versión de Spring Security más moderna (5.x o 6.x), la configuración de CSRF puede hacerse de la siguiente manera para habilitar o deshabilitar la protección, o personalizarla si es necesario.
Para habilitar la protección CSRF (que es el comportamiento por defecto), puedes configurarlo de esta forma:
http
.csrf(csrf -> csrf
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
);
Esto configura CSRF para usar un CookieCsrfTokenRepository
, que almacena el token CSRF en una cookie. Esta configuración es útil si estás trabajando con aplicaciones SPA (Single Page Applications) o aquellas que requieren que el token esté accesible para JavaScript.
Si necesitas configurar CSRF con métodos más personalizados, puedes usar un CsrfTokenRepository
distinto o ajustar el comportamiento con filtros adicionales.
Ejemplo de configuración avanzada:
http
.csrf(csrf -> csrf
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers("/api/auth/**") // Ignora CSRF para ciertas rutas
)
.authorizeRequests()
.antMatchers("/api/**").authenticated()
.anyRequest().permitAll();
Este código habilita CSRF con un repositorio de token basado en cookies y permite personalizar las rutas que no requieren protección CSRF (por ejemplo, las rutas de autenticación).
Con estas configuraciones, puedes manejar la protección CSRF de forma más moderna y ajustada a tus necesidades.