Spring CSRF token does not work, when the request to be sent is a multipart request

前端 未结 5 570
情歌与酒
情歌与酒 2020-11-27 22:24

I use,

  • Spring Framework 4.0.0 RELEASE (GA)
  • Spring Security 3.2.0 RELEASE (GA)
  • Struts 2.3.16

In which, I use an in-built securi

5条回答
  •  感情败类
    2020-11-27 23:02

    I solved this problem by:

    • sending the multi-part file using vanilla javascript, like in Mozilla's guide
    • adding the _csrf token in the HTML header, in meta tags, like in the Spring guideline for sending the CSRF token with Ajax
    • instead of using jquery, adding it directly to the XHR object

      var csrfToken = $("meta[name='_csrf']").attr("content");
      var csrfHeader = $("meta[name='_csrf_header']").attr("content");
      XHR.setRequestHeader(csrfHeader, csrfToken);
      XHR.setRequestHeader('Content-Type','multipart/form-data; boundary=' + boundary);
      
      XHR.send(data);
      

提交回复
热议问题