import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
@Configuration
public class RouteConfiguration {
@Bean
public WebFilter corsFilter() {
return (ServerWebExchange ctx, WebFilterChain chain) -> {
ServerHttpRequest request = ctx.getRequest();
ServerHttpResponse response = ctx.getResponse();
request.getHeaders().get(HttpHeaders.ORIGIN);
HttpHeaders headers = response.getHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Credentials", "true");
headers.add("Access-Control-Allow-Methods", "*");
headers.add("Access-Control-Allow-Headers", "*");
headers.add("Access-Control-Max-Age", "3600");
headers.add("Vary", "Origin,Access-Control-Request-Method,Access-Control-Request-Headers");
response.setStatusCode(HttpStatus.OK);
headers.add("Access-Control-Expose-Headers", "*");
headers.add("Vary", "Origin");
return chain.filter(ctx);
};
}
}
08-19
3958