在我的项目中,我对GMail使用OAuth2身份验证。这是配置:
@Configuration
@Order(97)
@EnableOAuth2Sso
public class OAuth2SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER)
.and()
.authorizeRequests()
.antMatchers("/gmail/**", "/login")
.authenticated();
}
}
这是Cors配置:
@Configuration
public class CorsConfig {
@Bean
public FilterRegistrationBean corsFilterRegistrationBean() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.applyPermitDefaultValues();
config.setAllowCredentials(true);
config.setAllowedOrigins(Collections.singletonList("*"));
config.setAllowedHeaders(Collections.singletonList("*"));
config.setAllowedMethods(Collections.singletonList("*"));
config.setExposedHeaders(Collections.singletonList("content-length"));
config.setMaxAge(3600L);
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
}
我使用VueJS来构建UI,更重要的是,我使用VueJS(代理表)中的代理来处理所有请求。
但是我无法从UI对GMail帐户进行身份验证,当我单击发送身份验证请求的按钮时,它失败并显示以下错误:
这是网络:
我不知道该怎么办。顺便说一句,从浏览器身份验证中,当我终结/ api / gmail / signin时,它很好用,但从项目中却不能。