解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题

前言:
最近在整合springboot+springsecurity,在PUT请求的时候出现了403的问题,这里记录一下解决的过程


  1. 到Spring的官网去查查SpringSecurity的参考手册看看为什么会有403的问题
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题
    官网是这样解释问题的
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题
    SpringSecurity默认是禁止接收POST请求的,而GET是默认可以的,官网给出两个解决方案:1是发送请求时带上CSRF的token,2是不推荐的做法(把SpringSecurity的CSRF功能关掉)

  2. 在这里,采用第一种解决方法
    在参考手册中找到在ajax中包含CSRF的token的方法,如下
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题
    大致就是给页面加上两个meta标签,然后在页面加载的时候完成设置,让ajax请求都带上CSRF的token。

  3. 小问题
    当然,官网给的页面是JSP的页面,而我用的是thymeleaf引擎,所以它的meta标签直接拿来用会出问题,要做一点小小的修改,如下
    这里参考了一个博客
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题


至此,问题解决。

上一篇:MySQL协议分析(2)


下一篇:nuxt拦截IE浏览器