已被 CORS 策略阻止:Spring 安全性中请求的资源上不存在"访问控制允许源"标头



我有一个CORS问题。我正在使用spring boot和vue来制作一个全栈web。但是当我用axios从前面向Spring Security表单发出请求时,我得到了CORS错误。我确信我必须在我的授权类中做一些事情来发出请求,但是我不知道。

下面是我的代码:
@EnableWebSecurity
@Configuration
public class WebAuthorization {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.formLogin()
.usernameParameter("email")
.passwordParameter("password")
.loginPage("/api/login");
http.logout().logoutUrl("/api/logout").deleteCookies("JSESSIONID");
return http.build();
}

我希望你可以用Vue把前面的请求变成我用spring security的表单。

您可以使用CorsConfigurationSourceBean配置CORS。例如:

@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
configuration.setAllowedMethods(Arrays.asList("GET","POST"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}

如果你想允许跨域请求:

@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.applyPermitDefaultValues();
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}

查看Spring Security文档获取更多信息。

最新更新