Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t仅在GetMapping中使用@RequestBody和PostMapping_Java_Spring - Fatal编程技术网

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();
    }
}