401,其中指定了"permitAll()"



我有这个WebSecurityConfigurerAdapter配置:

@EnableWebSecurity
public class HttpSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.cors()
.and()
.authorizeRequests()
.mvcMatchers("/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2ResourceServer().jwt()
;
}
}

当我向auth提出请求时,我会得到401,直到我通过一些授权——这不适合这个内插件。

我认为这与.anyRequest().authenticated()有关。我以前读过,这不应该影响permitAll()——我有没有误解?

您的请求可能会被拒绝,因为您没有提供CSRF令牌。默认情况下,Spring Security为每个POST请求启用它,并且您需要显式禁用它

@EnableWebSecurity
public class HttpSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.cors()
.and()
.csrf().disable()
.authorizeRequests()
.mvcMatchers("/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2ResourceServer().jwt();
}
}

您可以将以下属性添加到application.yml文件中,这样您就可以了解如果CSRF不是这样,您的请求被拒绝的原因:

logging:
level:
org.springframework.security: TRACE

如果你使用jwt过滤器,即使你添加了permitAll((,它也不会工作。如果你删除了过滤器,它也会工作得很好。

相关内容

  • 没有找到相关文章