版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37616173/article/details/81068592
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中就放了我们自定义的数据了