如果我使用@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){
          ...
       }
    }

最佳答案

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

10-04 18:12