提交 f7f35b3a 编写于 作者: H haoxr

feat(OAuth2ClientSecurityConfig.java): Spring Cloud Gateway开启CORS资源共享允许跨域

Closes #I60ESM
上级 968042e8
package com.youlai.gateway.config;
import cn.hutool.core.convert.Convert;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.web.server.SecurityWebFilterChain;
import java.util.Arrays;
import java.util.List;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsConfigurationSource;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
/**
......@@ -23,19 +21,34 @@ import java.util.List;
@Slf4j
public class OAuth2ClientSecurityConfig {
@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http
) {
http.authorizeExchange()
.pathMatchers("/**").permitAll()
.anyExchange().authenticated()
.anyExchange().permitAll()
.and()
// 禁用csrf token安全校验
.csrf().disable();
return http.build();
}
@Bean
public CorsConfigurationSource corsConfigurationSource() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource (new PathPatternParser());
CorsConfiguration corsConfig = new CorsConfiguration();
// 允许所有请求方法
corsConfig.addAllowedMethod ("*");
// 允许所有域,当请求头
corsConfig.addAllowedOriginPattern ("*");
// 允许全部请求头
corsConfig.addAllowedHeader ("*");
// 允许携带 Authorization 头
corsConfig.setAllowCredentials (true);
// 允许全部请求路径
source.registerCorsConfiguration ("/**", corsConfig);
return source;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册