gpt4 book ai didi

java - 禁用 csrf 会为 Spring boot 2.0 提供 404

转载 作者:行者123 更新时间:2023-12-02 09:56:35 25 4
gpt4 key购买 nike

我正在使用 spring boot 2.1.4.RELEASE 并试图找出 401 未经授权的错误。

下面是我的 webconfig 类

public void configure(WebSecurity web) throws Exception {

web.ignoring().antMatchers("/somepath/")

}

@Override
protected void configure(HttpSecurity http) throws Exception {
if(securityEnabled) {
http
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/somepath/").permitAll()
.and()
.httpBasic()
.and()
.anonymous().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
}

在我的主课中,我排除了 -

 @EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class,org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class})

现在,当我尝试使用 http://localhost:8080/somepath 测试我的 api 时,我收到了 401 未经授权的错误。但是,当我使用 token 尝试相同的端点时,它会起作用,这意味着身份验证尚未成功禁用。如果有任何帮助,我将不胜感激。

最佳答案

  1. 更改以下语句的顺序。
  2. 在第一个语句中,您要求对任何请求(所有请求)进行身份验证
  3. 然后您将使用模式(“/somepath/”)过滤请求,该模式与满足第一个语句无关。

        .anyRequest().authenticated()
    .antMatchers("/somepath/").permitAll()
  4. 删除以下语句。当使用 PermitAll 时,这意味着每个经过身份验证的用户,但是您禁用了匿名访问,因此这不起作用。

            .anonymous().disable()

因此,使用下面的配置函数并重新排列顺序应该可以解决这个问题。

public void configure(WebSecurity web) throws Exception {

web.ignoring().antMatchers("/somepath/")

}

@Override
protected void configure(HttpSecurity http) throws Exception {
if(securityEnabled) {
http
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/somepath/").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic()


.exceptionHandling().authenticationEntryPoint(unauthorizedEntryPoint());
}

关于java - 禁用 csrf 会为 Spring boot 2.0 提供 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962610/

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