exchange.getRequest().getHeaders().set(); 是不能向 headers中放文件的
這時配置一個gateway全局過濾器 filter中 做了向 header放數據
/**
* @Description 全局過濾器 在這裏可以實現記錄日誌和訪問權限校驗等
* @Author [email protected]
* @Created Date: 2018/7/11 14:20
* @ClassName AuthSignatureFilter
* @Version: 1.0
*/
@Component
public class AuthSignatureFilter implements GlobalFilter, Ordered {
static Logger logger = LoggerFactory.getLogger(AuthSignatureFilter.class);
/**
* 全局過濾器 核心方法
* @param exchange
* @param chain
* @return
*/
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
logger.info("request = {}",JSONArray.toJSONString( exchange.getRequest()) );
String token = exchange.getRequest().getQueryParams().getFirst("authToken");
//向headers中放文件,記得build
ServerHttpRequest host = exchange.getRequest().mutate().header("a", "888").build();
//將現在的request 變成 change對象
ServerWebExchange build = exchange.mutate().request(host).build();
return chain.filter(build);
}
@Override
public int getOrder() {
return -200;
}
}
這樣發送給路由的request中就放了我們自定義的數據了