|
@@ -0,0 +1,61 @@
|
|
|
|
+package com.boman.gateway.config;
|
|
|
|
+
|
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
|
+import org.springframework.web.cors.CorsConfiguration;
|
|
|
|
+import org.springframework.web.cors.reactive.CorsWebFilter;
|
|
|
|
+import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
|
|
|
|
+import org.springframework.web.util.pattern.PathPatternParser;
|
|
|
|
+
|
|
|
|
+/** 跨域请求
|
|
|
|
+ * @author shiqian
|
|
|
|
+ * @date 2021年06月04日 14:28
|
|
|
|
+ **/
|
|
|
|
+@Configuration
|
|
|
|
+public class CorsConfig {
|
|
|
|
+
|
|
|
|
+// private static final String MAX_AGE = "18000L";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Bean
|
|
|
|
+ public CorsWebFilter corsFilter() {
|
|
|
|
+ CorsConfiguration config = new CorsConfiguration();
|
|
|
|
+ config.addAllowedMethod("*");
|
|
|
|
+ config.addAllowedOrigin("*");
|
|
|
|
+ config.addAllowedHeader("*");
|
|
|
|
+
|
|
|
|
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
|
|
|
|
+ source.registerCorsConfiguration("/**", config);
|
|
|
|
+
|
|
|
|
+ return new CorsWebFilter(source);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// @Bean
|
|
|
|
+// public WebFilter corsFilter() {
|
|
|
|
+// return (ServerWebExchange ctx, WebFilterChain chain) -> {
|
|
|
|
+// ServerHttpRequest request = ctx.getRequest();
|
|
|
|
+//
|
|
|
|
+// if (CorsUtils.isCorsRequest(request)) {
|
|
|
|
+// HttpHeaders requestHeaders = request.getHeaders();
|
|
|
|
+// ServerHttpResponse response = ctx.getResponse();
|
|
|
|
+// HttpMethod requestMethod = requestHeaders.getAccessControlRequestMethod();
|
|
|
|
+// HttpHeaders headers = response.getHeaders();
|
|
|
|
+// headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, requestHeaders.getOrigin());
|
|
|
|
+// headers.addAll(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, requestHeaders
|
|
|
|
+// .getAccessControlRequestHeaders());
|
|
|
|
+// if(requestMethod != null){
|
|
|
|
+// headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethod.name());
|
|
|
|
+// }
|
|
|
|
+// headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
|
|
|
|
+// headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*");
|
|
|
|
+// headers.add(HttpHeaders.ACCESS_CONTROL_MAX_AGE, MAX_AGE);
|
|
|
|
+// if (request.getMethod() == HttpMethod.OPTIONS) {
|
|
|
|
+// response.setStatusCode(HttpStatus.OK);
|
|
|
|
+// return Mono.empty();
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// return chain.filter(ctx);
|
|
|
|
+// };
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+}
|