要实现的功能是:请求的参数里面必须有 ?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();
}
};
}
}










