Prechádzať zdrojové kódy

跨域

(cherry picked from commit 6a0fe44767df2da1c0a883b272650af381b6170c)
(cherry picked from commit 0ea1bbf578f65b6be21f17198c48087a2e7f17ea)
MOKASZ\lw12420 2 rokov pred
rodič
commit
4fe74b60bf

+ 33 - 0
launch-admin/src/main/java/com/webflux/launchadmin/config/AuthenticationFilter.java

@@ -0,0 +1,33 @@
+package com.webflux.launchadmin.config;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.stereotype.Component;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.server.WebFilter;
+import org.springframework.web.server.WebFilterChain;
+import reactor.core.publisher.Mono;
+
+
+@Slf4j
+@Component
+public class AuthenticationFilter implements WebFilter {
+    @Override
+    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
+        ServerHttpRequest request = exchange.getRequest();
+        ServerHttpResponse response = exchange.getResponse();
+        response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, CorsConfiguration.ALL);
+        if (HttpMethod.OPTIONS.matches(request.getMethod().name())) {
+            response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, CorsConfiguration.ALL);
+            response.getHeaders().add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, CorsConfiguration.ALL);
+            response.setStatusCode(HttpStatus.OK);
+            return response.setComplete();
+        }
+		return chain.filter(exchange);
+    }
+}