春クラウドゲートウェイは、フィルタを実行するように指定します
設定は、フィルタ構成ファイルで必要
ゲートウェイ構成は、2つのフィルタに分割されています
①:グローバルフィルタ
グローバルフィルタは、サービスへのすべての要求がインターセプトし、プロファイル設定する必要はありません
/**
* @author 荡漾
* @title: TokenFilter
* @projectName gateway
* @description: TODO token校验全局过滤器
* @date 2019/6/21 12:41
*/
@Configuration
@Slf4j
public class TokenFilter implements GlobalFilter, Ordered {
@Override
public int getOrder() {
return -10000;
}
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
return chain.filter(exchange);
}
}
②:指定フィルタ
継承AbstractGatewayFilterFactoryする必要があります
利点は、構成ファイルで構成することができ、フィルタは、サービスに指定することができ、
単純に示すように、コンフィギュレーション・ファイルの名前に対応したフィルタ:
それはあなたのフィルタ名のサフィックスがTestGatewayFilterFactoryとしてGatewayFilterFactoryであれば、あなたがそれにフルネームを書くことができない場合は、単に設定ファイルでテストを書くことは注目に値します
@Component
@Slf4j
public class Test extends AbstractGatewayFilterFactory<Test.NameConfig> {
public Test() {
super(NameConfig.class);
log.info("Loaded GatewayFilterFactory [Authorize]");
}
@Override
public GatewayFilter apply(Test.NameConfig config) {
return (exchange, chain) -> {
System.out.println("= = = = = = 执行了= = = = = = = =");
return chain.filter(exchange);
};
}
public static class NameConfig {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}