GeXiangDong

精通Java、SQL、Spring的拼写,擅长Linux、Windows的开关机

0%

SpringMVC POST 时返回403禁止访问

出现的问题及原因

Spring boot 在 SpringMVC / REST 和Spring Security一起使用时,编写的RestController 或 Controller 中的方法,GET不出错, POST 403,这可能是CSRF保护导致的。

解决方法

可以通过 httpSecurity.csrf().disable() 关闭csrf防护。

但这不是推荐的做法。官方推荐的做法是增加csrf token

https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#csrf-include-csrf-token

SpringMVC中可以在form中增加:

1
<input type=”hidden” th:name=”${_csrf.parameterName}” th:value=”${_csrf.token}”/>

RESTful API需要把这2个值作为http header传递给后端。

CSRF

CSRF是网络攻击的一种,此处有详细说明