gpt4 book ai didi

spring-boot - HttpSecurity POST 403 禁止访问

转载 作者:行者123 更新时间:2023-12-05 08:40:51 24 4
gpt4 key购买 nike

我收到 POST 端点错误 403 Forbidden,其他端点按预期工作。

我有 4 个端点,我需要重现身份验证行为:

GET \users - no authentication
GET \details\1 - needs authentication
GET \users\1 needs authentication
POST \users\1 needs authentication

我的配置类:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(AuthenticationManagerBuilder auth)
throws Exception {
auth.inMemoryAuthentication()
.passwordEncoder(org.springframework.security
.crypto.password.NoOpPasswordEncoder.getInstance())
.withUser("user").password("pwd")
.roles("USER").and().withUser("admin").password("pwd")
.roles("USER", "ADMIN");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers( "/users").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic();
}
}

Maven 依赖:

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

最佳答案

我怀疑 csrf 是导致问题的原因。

如果您没有使用 csrf 但默认情况下它仍会启用。见Cross Site Request Forgery (CSRF)所以尝试禁用 csrf 保护。

如果启用 CSRF在安全方面,您的发帖请求需要更新以包含一些额外信息。它解释了为什么 GET 有效,但 POST 无效。

在您的情况下,尝试像下面那样禁用它,看看它是否能解决问题。

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable();
}

关于spring-boot - HttpSecurity POST 403 禁止访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53037161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com