你知道我的 spring 安全配置有什么问题吗?



>我需要验证从"/api/auth"开始的所有请求,除了"/api/auth/login"和"/api/auth/token/refresh"。这是我的安全配置配置方法。问题是,它没有按预期工作。它检查"/api/auth/token/refresh"的身份验证,即使我为它分配了 permitAll。



@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/api/auth/login").antMatcher("/api/auth/token/refresh")
.antMatcher("/api/auth/**")
.antMatcher("/api/**");
http
.cors()
.and()
.csrf()
.disable()
.exceptionHandling()
.authenticationEntryPoint(unauthorizedHandler)
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers(AUTH_WHITELIST)
.permitAll()
.antMatchers("/api/auth/login","/api/auth/token/refresh").permitAll()
.antMatchers("/api/auth/**").authenticated()
.antMatchers("/api/**").permitAll()
.anyRequest()
.permitAll();
// Add our custom JWT security filter
http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
}

删除前 3 行代码。

antMatcher(String)的Javadoc 说:

调用antMatcher(String)覆盖以前对 [...]、antMatcher(String)、[...] 的调用。

叫它 4 次并不能做到你认为的那样。

相关内容

  • 没有找到相关文章

最新更新