Spring Security 3.2 CSRF soporte para solicitudes multiparte
Hemos estado utilizando Spring Security con nuestra aplicación desde hace algunos años. La semana pasada actualizamos Spring Security de la versión 3.1.4 a 3.2.0. La actualización salió bien y no encontramos ningún error después de la actualización.
Mientras examinamos la documentación de Spring Security 3.2.0, encontramos las nuevas características de protección de CSRF y encabezados de seguridad. Seguimos las instrucciones en la documentación de Spring Security 3.2.0 para habilitar la protección CSRF para nuestros recursos protegidos. Funciona bien para formularios regulares pero no funciona para formularios de múltiples partes en nuestra aplicación. En el formulario de presentación,CsrfFilter
emite un error de Acceso denegado citando la ausencia de un token CSRF en la solicitud (determinada a través de los registros DEBUG). Hemos intentado utilizar la primera opción sugerida en elDocumentación de seguridad de primavera Para realizar trabajos de protección CSRF con formularios multiparte. No queremos utilizar la segunda opción sugerida, ya que filtra los tokens CSRF a través de las URL y representa un riesgo para la seguridad.
La parte relevante de nuestra configuración basada en la documentación está disponible comoEsencia en Github. Estamos utilizando la versión de primavera 4.0.0.
Tenga en cuenta que ya hemos probado las siguientes variaciones sin éxito:
No declarando elMultipartFilter
enweb.xml
.No establecer el nombre del bean de resolución para elMultipartFilter
enweb.xml
.Usando el nombre de bean de resolución predeterminadofilterMultipartResolver
enwebContext.xml
.ACTUALIZAR: He confirmado que el comportamiento documentado no funciona incluso con una aplicación de ejemplo de una sola página. ¿Alguien puede confirmar que el comportamiento documentado funciona como se espera? ¿Hay alguna aplicación de trabajo de ejemplo que se pueda usar?