spring cloud gateway全局过滤器 向request header中放数据

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

猜你喜欢

转载自blog.csdn.net/qq_37616173/article/details/81068592
今日推荐