Spring Security 返回登录页

bkhjykvo  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(347)

我知道有很多这样的问题,但我找不到解决我的问题的答案。
这是我的配置:

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(HttpMethod.POST, "/").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .permitAll()
                .and()
            .logout().permitAll();
    }
}

这是我的端点,我希望用户无需登录即可访问:

@Slf4j
@RestController
public class MyController {

    @PostMapping(value = "/", consumes = MediaType.TEXT_PLAIN_VALUE)
    public void acceptAnonymously(HttpEntity<String> requestEntity) {
        log.debug("body: {}", requestEntity.getBody());
    }

}

所以基本上,我希望允许未经验证的post请求 localhost:8080 . 其他一切都应该经过认证。但当我击中 localhost:8080 对于 Postman ,我得到的是:

iqih9akk

iqih9akk1#

所以,csrf代表跨站点请求伪造,我相信springweb/security默认启用了csrf。当它被启用时,您需要正确地将正确的csrf令牌传递给您的应用程序,以便访问您的应用程序,否则您将被抛出403禁止类型错误。或者,如果您需要,还可以使用其他方法对用户进行身份验证。 .csrf().disable()

相关问题