| | |
| | | package com.jilongda.common.config; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | 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.MediaType; |
| | | import org.springframework.http.server.reactive.ServerHttpRequest; |
| | | import org.springframework.http.server.reactive.ServerHttpResponse; |
| | | 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 org.springframework.web.servlet.function.RequestPredicates; |
| | | import org.springframework.web.servlet.function.RouterFunction; |
| | | import org.springframework.web.servlet.function.RouterFunctions; |
| | | import reactor.core.publisher.Mono; |
| | | |
| | | import java.util.Collections; |
| | |
| | | @Configuration |
| | | public class CorsConfig { |
| | | |
| | | /** |
| | | * 这里为支持的请求头,如果有自定义的header字段请自己添加 |
| | | */ |
| | | private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion"; |
| | | private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE"; |
| | | private static final String ALLOWED_ORIGIN = "*"; |
| | | private static final String ALLOWED_EXPOSE = "*"; |
| | | private static final String MAX_AGE = "18000L"; |
| | | |
| | | private CorsConfiguration buildConfig() { |
| | | CorsConfiguration corsConfiguration = new CorsConfiguration(); |
| | | //1.允许任何来源 |
| | | corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*")); |
| | | //2.允许任何请求头 |
| | | corsConfiguration.addAllowedHeader(CorsConfiguration.ALL); |
| | | //3.允许任何方法 |
| | | corsConfiguration.addAllowedMethod(CorsConfiguration.ALL); |
| | | //4.允许凭证 |
| | | corsConfiguration.setAllowCredentials(true); |
| | | return corsConfiguration; |
| | | } |
| | | |
| | | /** |
| | | * 跨域配置 |
| | | */ |
| | | @Bean |
| | | public WebFilter corsFilter() { |
| | | public WebFilter corsFilter() |
| | | { |
| | | return (ServerWebExchange ctx, WebFilterChain chain) -> { |
| | | ServerHttpRequest request = ctx.getRequest(); |
| | | if (CorsUtils.isCorsRequest(request)) |