0
点赞
收藏
分享

微信扫一扫

Gateway 自定义过滤器的实现

小安子啊 2022-04-19 阅读 89
java
要实现的功能是:请求的参数里面必须有    ?name=男

filters:
  - CheckAuth=fox,男

实现的方案:

@Component
@Slf4j
public class CheckAuthGatewayFilterFactory extends AbstractNameValueGatewayFilterFactory {

    @Override
    public GatewayFilter apply(NameValueConfig config) {

        return (exchange, chain) -> {
            String name = exchange.getRequest().getQueryParams().getFirst("name");
            log.info("调用CheckAuthGatewayFilterFactory===" + config.getName() + ":" + config.getValue());
            if(config.getValue().equals(name)){
                return chain.filter(exchange);
            }else{
                exchange.getResponse().setStatusCode(HttpStatus.NO_CONTENT);
                return exchange.getResponse().setComplete();
            }
        };
    }





}
举报

相关推荐

0 条评论