spring cloud gateway跨域全局CORS配置
生活随笔
收集整理的這篇文章主要介紹了
spring cloud gateway跨域全局CORS配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Spring 5 Webflux中,配置CORS,可以通過自定義WebFilter實現:
注:此種寫法需真實跨域訪問,監控header中才會帶相應屬性。
代碼實現方式
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.cors.reactive.CorsUtils; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import org.springframework.http.HttpMethod; import reactor.core.publisher.Mono;import static org.springframework.web.cors.CorsConfiguration.ALL; public class XXXApplication{ public static void main(String[] args) {SpringApplication.run(XXXApplication.class, args); } private static final String MAX_AGE = "18000L"; @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);}; } }配置實現方式
網上還提到一種配置寫法,實測好用(感謝評論兄弟fiberhuo補充):
spring:cloud:gateway:globalcors:corsConfigurations:'[/**]':allowedOrigins: "*"allowedMethods: "*"allowedHeaders: "*"?
總結
以上是生活随笔為你收集整理的spring cloud gateway跨域全局CORS配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python try 异常处理 史上最全
- 下一篇: Win7的市场份额终于超过XP了,以后可