Spring Security:无法启用 PermitAll() 到 POST API

krt*_*ush 2 spring-security spring-boot

我正在尝试将 Spring Security 实现到 POST API -

http?.authorizeRequests()
                ?.antMatchers(HttpMethod.POST, "/user/details")?.permitAll()
                ?.antMatchers("/user/**")?.hasRole("admin")
                ?.and()
                ?.formLogin()
Run Code Online (Sandbox Code Playgroud)

但是,permitAll()似乎不起作用。但是,如果我替换HttpMethod.POSTHttpMethod.GET,则其下的 GET 请求将遵循antMatcher预期的规则。

POST 请求有不同的方式吗?

Kav*_*lai 5

  • Spring securitycsrf默认启用。因此,根据您的配置,csrf 已启用。

  • csrf不应用于GET请求,但应用于PUT, DELETE,POSTPATCH

  • 因此,出于测试目的,您也可以将其添加到配置中。http.csrf().disable()你的意志POST会起作用

笔记

一旦开始工作,您可以了解如何保持启用状态并在修改请求中csrf发送令牌csrf