首页 > 其他分享 >Gateway使用时不走全局过滤器

Gateway使用时不走全局过滤器

时间:2023-05-07 19:23:11浏览次数:47  
标签:lb 配置文件 ebook public token 过滤器 全局 Gateway

报错

今天配置nacos+gateway作为项目的基础,想通过gateway的过滤器进行token的校验。百度后,发送请求,进行网关找到对应的服务,但是没有进行token校验。每次请求都能够进入到方法体中。
自定义过滤器:

@Component
public class TokenFilter implements GatewayFilter, Ordered {

    @Resource
    private RedisUtils redisUtils;

    /**
     * token过滤
     */
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        return chain.filter(exchange);
    }


    @Override
    public int getOrder() {
        // ordered的值越大,优先级越低,越靠后执行
        return -2;
    }
}

配置文件中信息:

spring:
  cloud:
	gateway:
      discovery:
        locator:
          enabled: true #自动匹配nacos中服务名称,不用我们每次都进行服务路由配置
          lower-case-service-id: true # 小写名称匹配
#      routes:
#        - id: function
#          uri: lb://service-function
#          predicates:
#            - Path=/function/**
#        - id: ebook
#          uri: lb://service-ebook  # nacos 中服务的名称
#          predicates: # 断言类型: Path、Query、Method、Header等,写法必须遵循 key=vlue的形式
#            - Path=/ebook/**
      default-filters:
        - StripPrefix=1 # 1 表示: /ebook/auth/code => /auth/code

查找:

Gateway的过滤器,分为两种一个是全局过滤器(GlobalFilter,10个),一个是配置文件生成的过滤器(由配置文件得到的2个过滤器,StripPrefix=1lb://serviceid),但自定义的过滤器,却看不到。
image

处理

public class TokenFilter implements GlobalFilter, Ordered {}
这样在全局过滤器中就能找到了


参考资料:https://www.oschina.net/question/2303434_2317418?sort=time

标签:lb,配置文件,ebook,public,token,过滤器,全局,Gateway
From: https://www.cnblogs.com/zz-1q/p/17379842.html

相关文章

  • SpringCloud gateway Actuator
    要启用gateway的Actuator交互首先添加依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>其次在application.properties配置:management.end......
  • SpringCloud gateway 元数据,超时,Netty Access Logs
    元数据spring:cloud:gateway:routes:-id:route_with_metadatauri:https://example.orgmetadata:optionName:"OptionValue"compositeObject:name:"value"iAmNu......
  • SpringCloud gateway HttpHeadersFilters
    HttpHeadersFilter在将请求发送到下游之前应用于请求,例如在NettyRoutingFilter中。1、ForwardedHeadersFilterForwardedHeadersFilter创建一个Forwarded标头以发送到下游服务。它将当前请求的Host标头、scheme和端口添加到任何现有的Forwarded标头中。2、RemoveHopByHopH......
  • SpringCloud gateway全局过滤器
    GlobalFilter接口具有与GatewayFilter相同的签名。这些是有条件地应用于所有路由的特殊过滤器。组合GlobalFilter和GatewayFilter当请求与路由匹配时,过滤web处理程序会将GlobalFilter的所有实例和GatewayFilter的所有路由特定实例添加到过滤器链中。这个组合的过滤器链由org.spr......
  • SpringCloud gateway内置过滤器之六
    1、RequestSizeGatewayFilter当请求大小大于允许的限制时,RequestSizeGatewayFilter可以限制请求到达下游服务。过滤器采用maxSize参数。maxSize是`DataSize类型,因此可以将值定义为一个数字,后跟可选的DataUnit后缀,如“KB”或“MB”。字节的默认值为“B”。它是以字节为单位定义......
  • SpringCloud gateway内置过滤器之五
    1、SetRequestHeaderGatewayFilterSetRequestHeaderGatewayFilter设置请求头,会覆盖原来已有的请求头。spring:cloud:gateway:enabled:trueroutes:-id:Goods-Server#路由id,唯一标识uri:lb://producerpredicates......
  • SpringCloud gateway内置过滤器之四
    1、RewriteLocationResponseHeaderGatewayFilterRewriteLocationResponseHeaderGatewayFilter修改Location响应标头的值,通常是为了消除后端特定的详细信息。有stripVersionMode、locationHeaderName、hostValue和protocolsRegex参数。protocolsRegx参数必须是有效的正则表达式......
  • 怎么准备Java面试(一):全局把控
    一、前言最近小编换工作,也要开始准备一下面试。小编作为一个Java开发,也是从初级——>中级——>高级——>资深。一步一步走过来的,基本面试过程中,内容是大致是一样的。下面我将从这几个分支中来依次铺展开:二、聊一聊面试大部分公司会有:一面基础面试or算法;二面项目组长深入面试......
  • java filter过滤器 读取配置文件properties的值
    http://www.yayihouse.com/yayishuwu/chapter/29811.获取application.properties的值如userId=1 2.一般实体中采用@Value既可获取@Value("userIdl")privateStringuserId; 但是在filter中,需要用上下文对象来获取filter的生命周期如下:web应用程序启动时,web服务器将创......
  • 浅谈Protocol Buffers、GRPC、Buf、GRPC-Gateway
    1.ProtocolBuffers什么是proto?ProtocolBuffers如何理解ProtocolBuffers?协议缓冲区非proto协议如何订立、传播以及维护?如何理解协议缓冲区?Protocolbuffers提供了一种语言中立、平台中立、可扩展的机制,用于以向前兼容和向后兼容的方式序列化结构化数据。它......