Java Can';t仅在GetMapping中使用@RequestBody和PostMapping
如果我使用Java Can';t仅在GetMapping中使用@RequestBody和PostMapping,java,spring,Java,Spring,如果我使用@GetMapping和@RequestBody一切正常,但如果我只将@GetMapping更改为@PostMapping,我会在postman中得到以下错误: @GetMapping和@PostMapping是Spring MVC注释,但是-是与安全问题相关的HTTP代码。因此,问题肯定出在Spring安全配置中 问题的目的很有可能是在Spring Security中默认启用的CSRF保护 要尝试一下,请通过以下方式禁用配置中的保护: @Configuration @EnableWe
@GetMapping
和@RequestBody
一切正常,但如果我只将@GetMapping
更改为@PostMapping
,我会在postman中得到以下错误:
@GetMapping和@PostMapping是Spring MVC注释,但是-是与安全问题相关的HTTP代码。因此,问题肯定出在Spring安全配置中 问题的目的很有可能是在Spring Security中默认启用的CSRF保护 要尝试一下,请通过以下方式禁用配置中的保护:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
之后,应用程序中应该允许POST请求。@GetMapping和@PostMapping是Spring MVC注释,但是-是与安全问题相关的HTTP代码。因此,问题肯定出在Spring安全配置中 问题的目的很有可能是在Spring Security中默认启用的CSRF保护 要尝试一下,请通过以下方式禁用配置中的保护:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
之后,应用程序中应该允许POST请求。
403
是一个安全拒绝响应,而不是映射错误响应,因此您可能没有将Spring安全配置为允许POST.http.authorizeRequests().anyRequest().permitAll();这是唯一的一个吗?您是否也启用了方法级安全性?也许insert()
正在调用用户无权调用的服务方法?我在这里猜测,因为我们严重缺乏可用的信息。好吧,它肯定是spring boot starter安全性,我删除了它,现在它工作正常,我将搜索问题所在。403
是安全拒绝响应,而不是映射错误响应,所以您可能没有将Spring安全性配置为允许POST.http.authorizeRequests().anyRequest().permitAll();这是唯一的一个吗?您是否也启用了方法级安全性?也许insert()
正在调用用户无权调用的服务方法?我在这里猜测,鉴于我们严重缺乏可用信息。好吧,它肯定是spring boot starter安全性,我删除了它,现在它工作正常,我将搜索问题所在。谢谢,它工作正常,但如果csrf在全球范围内被禁用,它不是安全线程?嗯,这取决于:如果服务器不是全局使用的,而是由应用程序中的其他服务使用的,则可以将其禁用。否则,为修改服务器状态的每个请求类型配置发送CSRF令牌是值得的(谈到CRUD:POST、PUT、PATCH和DELETE类型)。谢谢,如果CSRF被全局禁用,它可以工作,但不是一个安全线程,这取决于:如果服务器不是全局使用的,而是由应用程序中的其他服务使用的,则可以将其禁用。否则,值得为修改服务器状态的每个请求类型配置发送CSRF令牌(谈到CRUD:POST、PUT、PATCH和DELETE类型)。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}