Spring 启动 - React 无法授权过滤器调用

Spring Boot - React Failed to authorize filter invocation

大家好我是 spring 引导和反应的新手,我正在开发简单的登录应用程序 使用反应 js 和 spring 引导 , 每当我尝试导航到另一个 API 呼叫(例如注销、欢迎)时,我都会收到以下消息 无法授权具有属性 [已验证] 的过滤器调用 [GET /welcome] 我认为这是 WebSecurityConfigurerAdapter 的问题 寻找合适的解决方案

@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
    httpSecurity.csrf().disable().sessionManagement().sessionFixation().migrateSession().and()
            //.addFilterAfter(new AuthenticationFilter(), UsernamePasswordAuthenticationFilter.class).csrf().disable()
            .authorizeRequests()
            .antMatchers("/").permitAll()
            .anyRequest().authenticated()
            .and().formLogin().loginPage("/login").and()
            .logout()
            .logoutUrl("/logout").invalidateHttpSession(true).deleteCookies().clearAuthentication(true)
            .permitAll()
            .and()
            .exceptionHandling().accessDeniedPage("/403").and().httpBasic();
}

handleDashboard() {

axios.get("http://localhost:8080/welcome",{ withCredentials: true }).then(res => {
  if (res.data === "success") {
    this.props.history.push("/");
  } else {
    alert("Authentication failure");
  }
});

}

WebSecurityConfig log output

在尝试 spring 安全和 spring 引导后,我找到了根本原因并修复了它,只需在主 class 文件中启用 CORS(全局 CORS配置),将解决上述问题。

ps:即使在其方法级别启用 CORS 也无法正确识别,需要在主 class

中添加它
  @Bean
public FilterRegistrationBean<CorsFilter> simpleCorsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.setAllowedOrigins(Arrays.asList("http://localhost:3000"));
    config.setAllowedMethods(Collections.singletonList("*"));
    config.setAllowedHeaders(Collections.singletonList("*"));
    source.registerCorsConfiguration("/**", config);
    FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source));
    bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return bean;
}