gpt4 book ai didi

java - 不能将 @RequestBody 与 PostMapping 一起使用,只能与 GetMapping 一起使用

转载 作者:行者123 更新时间:2023-12-02 00:57:26 24 4
gpt4 key购买 nike

如果我使用 @GetMapping@RequestBody 一切正常,但如果我仅将 @GetMapping 更改为 @PostMapping 我在 postman 中收到此错误:

"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){
...
}
}

最佳答案

@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 请求。

关于java - 不能将 @RequestBody 与 PostMapping 一起使用,只能与 GetMapping 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61160243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com