如果我使用@GetMapping
和@RequestBody
一切正常,但是如果我仅将@GetMapping
更改为@PostMapping
,我会在邮递员中收到此错误:
"status": 403, "error": "Forbidden", "message": "Forbidden",
@GetMapping(value = "/insert") //works
public Long insert(@RequestBody T entity){
...
}
}
@PostMapping(value = "/insert") //does not work
public Long insert(@RequestBody T entity){
...
}
}
答案 0 :(得分:2)
@GetMapping和@PostMapping是Spring MVC注释,但是403-是与安全性相关的HTTP代码。因此,问题肯定出在Spring Security配置中。
此问题很有可能是Spring Security中默认启用的CSRF保护。
要尝试一下,请通过以下方式在配置中禁用CSRF保护:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
此后,应在应用程序内允许POST请求。