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