Spring Boot 2.7.10 请求 403 Forbidden 错误
使用 knife4j 3.0.3 测试接口,发现 POST 请求出现错误信息,不是自定义的返回内容。
{
"timestamp": "2023-03-31T07:23:08.378+00:00",
"status": 403,
"error": "Forbidden",
"message": "Forbidden",
"path": "/user/delete/3"
}
不清楚什么情况,百度结果是使用了 spring security,要关闭 csrf。已经设置了允许所有的请求,并且 GET 请求就不受影响。看到另一个使用 jwt 的项目也是关闭了 csrf 的,不清楚关闭后会有什么安全风险,但本地测试就不管那么多了。在 web 安全配置里设置 http.csrf().disable()
就可以了。
WebSecucityConfig.php
@Configuration
@EnableWebSecurity
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests(
requests->requests.requestMatchers()
.permitAll()
.anyRequest()
.authenticated()
)
.formLogin(form->form.loginPage("/login").permitAll())
.logout(LogoutConfigurer::permitAll);
return http.build();
}
...