|
@@ -1,70 +1,70 @@
|
|
|
-package com.diagbot.config;
|
|
|
-
|
|
|
-import org.springframework.cloud.client.discovery.DiscoveryClient;
|
|
|
-import org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator;
|
|
|
-import org.springframework.cloud.gateway.discovery.DiscoveryLocatorProperties;
|
|
|
-import org.springframework.cloud.gateway.route.RouteDefinitionLocator;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-import org.springframework.http.HttpHeaders;
|
|
|
-import org.springframework.http.HttpMethod;
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
-import org.springframework.http.codec.ServerCodecConfigurer;
|
|
|
-import org.springframework.http.codec.support.DefaultServerCodecConfigurer;
|
|
|
-import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
|
-import org.springframework.http.server.reactive.ServerHttpResponse;
|
|
|
-import org.springframework.web.cors.reactive.CorsUtils;
|
|
|
-import org.springframework.web.server.ServerWebExchange;
|
|
|
-import org.springframework.web.server.WebFilter;
|
|
|
-import org.springframework.web.server.WebFilterChain;
|
|
|
-import reactor.core.publisher.Mono;
|
|
|
-
|
|
|
-/**
|
|
|
- * @Description: 跨域路由配置
|
|
|
- * @author: gaodm
|
|
|
- * @time: 2018/9/28 9:39
|
|
|
- */
|
|
|
-@Configuration
|
|
|
-public class RouteConfigurer {
|
|
|
-
|
|
|
- private static final String ALL = "*";
|
|
|
- private static final String MAX_AGE = "18000L";
|
|
|
-
|
|
|
- @Bean
|
|
|
- public RouteDefinitionLocator discoveryClientRouteDefinitionLocator(DiscoveryClient discoveryClient,
|
|
|
- DiscoveryLocatorProperties properties) {
|
|
|
- return new DiscoveryClientRouteDefinitionLocator(discoveryClient, properties);
|
|
|
- }
|
|
|
-
|
|
|
- @Bean
|
|
|
- public ServerCodecConfigurer serverCodecConfigurer() {
|
|
|
- return new DefaultServerCodecConfigurer();
|
|
|
- }
|
|
|
-
|
|
|
- @Bean
|
|
|
- public WebFilter corsFilter() {
|
|
|
- return (ServerWebExchange ctx, WebFilterChain chain) -> {
|
|
|
- ServerHttpRequest request = ctx.getRequest();
|
|
|
- if (!CorsUtils.isCorsRequest(request)) {
|
|
|
- return chain.filter(ctx);
|
|
|
- }
|
|
|
- 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, ALL);
|
|
|
- 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);
|
|
|
- };
|
|
|
- }
|
|
|
-}
|
|
|
+//package com.diagbot.config;
|
|
|
+//
|
|
|
+//import org.springframework.cloud.client.discovery.DiscoveryClient;
|
|
|
+//import org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator;
|
|
|
+//import org.springframework.cloud.gateway.discovery.DiscoveryLocatorProperties;
|
|
|
+//import org.springframework.cloud.gateway.route.RouteDefinitionLocator;
|
|
|
+//import org.springframework.context.annotation.Bean;
|
|
|
+//import org.springframework.context.annotation.Configuration;
|
|
|
+//import org.springframework.http.HttpHeaders;
|
|
|
+//import org.springframework.http.HttpMethod;
|
|
|
+//import org.springframework.http.HttpStatus;
|
|
|
+//import org.springframework.http.codec.ServerCodecConfigurer;
|
|
|
+//import org.springframework.http.codec.support.DefaultServerCodecConfigurer;
|
|
|
+//import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
|
+//import org.springframework.http.server.reactive.ServerHttpResponse;
|
|
|
+//import org.springframework.web.cors.reactive.CorsUtils;
|
|
|
+//import org.springframework.web.server.ServerWebExchange;
|
|
|
+//import org.springframework.web.server.WebFilter;
|
|
|
+//import org.springframework.web.server.WebFilterChain;
|
|
|
+//import reactor.core.publisher.Mono;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * @Description: 跨域路由配置
|
|
|
+// * @author: gaodm
|
|
|
+// * @time: 2018/9/28 9:39
|
|
|
+// */
|
|
|
+//@Configuration
|
|
|
+//public class RouteConfigurer {
|
|
|
+//
|
|
|
+// private static final String ALL = "*";
|
|
|
+// private static final String MAX_AGE = "18000L";
|
|
|
+//
|
|
|
+// @Bean
|
|
|
+// public RouteDefinitionLocator discoveryClientRouteDefinitionLocator(DiscoveryClient discoveryClient,
|
|
|
+// DiscoveryLocatorProperties properties) {
|
|
|
+// return new DiscoveryClientRouteDefinitionLocator(discoveryClient, properties);
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Bean
|
|
|
+// public ServerCodecConfigurer serverCodecConfigurer() {
|
|
|
+// return new DefaultServerCodecConfigurer();
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Bean
|
|
|
+// public WebFilter corsFilter() {
|
|
|
+// return (ServerWebExchange ctx, WebFilterChain chain) -> {
|
|
|
+// ServerHttpRequest request = ctx.getRequest();
|
|
|
+// if (!CorsUtils.isCorsRequest(request)) {
|
|
|
+// return chain.filter(ctx);
|
|
|
+// }
|
|
|
+// 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, ALL);
|
|
|
+// 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);
|
|
|
+// };
|
|
|
+// }
|
|
|
+//}
|