栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

自定义Spring Cloud Gateweay局部过滤器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自定义Spring Cloud Gateweay局部过滤器

在项目中,我们可能会遇到,多个模块,不能的模块资源权限校验方式可能不一样,这个时候我们可以使用Gateway的局部过滤器来进行处理

我们需要自定义一个AbstractGatewayFilterFactory,代码如下:

@Component
public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory {

    public AuthGatewayFilterFactory () {
        super(Config.class);
    }

    @Override
    public GatewayFilter apply(Config config) {
        return (exchange, chain) -> {
            ServerPath server = ServerPath.build(exchange);
            // url路径
            String path = server.getPath();
            ServerHttpRequest request = exchange.getRequest();
            HttpHeaders header = request.getHeaders();
        	String token = header.getFirst(Constants.AUTHORIZATION);
        	//todo 1:判断token是否有效,2:判断path是否在用户所在的资源中
            return chain.filter(exchange);
        };
    }

    public static class Config {
        //Put the configuration properties for your filter here
    }

}

然后我们需要在Gateway的yml中配置要权限校验的服务的过滤器即可

spring:
  cloud:
    gateway:
      routes:
        - id: auth
          uri: lb://auth
          predicates:
            - Path=/auth/**
          filters:
            - StripPrefix=1
            # 过滤器的名称取得是AuthGatewayFilterFactory去掉GatewayFilterFactory的部分
            - Auth

好了,到这里配置就基本结束了

最后,欢迎关注微信公众号一起交流

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号