Spring Gateway 跨域请求头重复处理过滤器
    
  
      
      
      
      
    
    
      
          
        Spring Gateway 跨域请求头重复处理过滤器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   | @Component public class CorsResponseHeaderFilter implements GlobalFilter, Ordered {     @Override     public int getOrder() {                  return NettyWriteResponseFilter.WRITE_RESPONSE_FILTER_ORDER + 1;     }     @Override     @SuppressWarnings("serial")     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {         return chain.filter(exchange).then(Mono.defer(() -> {             exchange.getResponse().getHeaders().entrySet().stream()                     .filter(kv -> (kv.getValue() != null && kv.getValue().size() > 1))                     .filter(kv -> (kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)                             || kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)))                     .forEach(kv -> kv.setValue(new ArrayList<String>() {{                         add(kv.getValue().get(0));                     }}));             return chain.filter(exchange);         }));     } }
   | 
 
      
     
    
   
  
    
    
        
            
				| 个人微信公众号 | 技术交流QQ群 | 
            
            
				
					  | 
					  |