Primavera nube de puerta de enlace especifica el filtro de ejecución (dispuestos en el archivo de configuración de filtro requerido)

                                   Primavera nube de puerta de enlace designado para llevar a cabo el filtro 

                                               La configuración necesaria en el archivo de configuración de filtros

 

configuración de la pasarela se divide en dos filtros

①: filtros globales

Filtros globales no necesitan perfil de configuración, todas las solicitudes al servicio de interceptación voluntad,


/**
 * @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);
  }
}

②: especifica el filtro

Necesidad de heredar AbstractGatewayFilterFactory  

Ventajas, se pueden configurar en el archivo de configuración, el filtro se puede especificar para un servicio,

Simplemente filtrado correspondiente al nombre del archivo de configuración como se muestra:

Vale la pena señalar que si Filtro sufijo es GatewayFilterFactory como TestGatewayFilterFactory acaba de escribir en archivos de configuración de prueba si no se puede entonces escribir el nombre completo en él


@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;
        }

    }
}

Referencia:  StackOverflow 

Publicado 66 artículos originales · ganado elogios 85 · Vistas de 140.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_38380025/article/details/104894916
Recomendado
Clasificación