V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Canon1014
V2EX  ›  Java

请教一个问题,在 Spring Cloud Gateway 的 Filter 中无法使用 Feign 吗

  •  
  •   Canon1014 · 7 天前 · 579 次点击

    准备用 gateway 的过滤器做身份验证,但是 FeignClient 的 Service 总是注入失败(报错为 service 为 null )。

    搜到了一些解决方法感觉都不好用,开始怀疑这么做是不是不太优雅。

    在 github 上找到了维护人员的回复说 Feign can't be used in gateway filters 。

    求教各位有什么办法可以解决吗,或者通过其他方式可以实现这个功能。

    8 条回复    2021-04-08 12:53:14 +08:00
    iminto
        1
    iminto   7 天前   ❤️ 1
    Canon1014
        2
    Canon1014   6 天前
    @iminto #1 尝试过,还是有问题。我现在最纠结的问题是既然这么不方便是不是表示不提倡那么做,或者有更优的方式。
    iminto
        3
    iminto   6 天前
    @Canon1014 gateway 作为网关层,本来就不该弄得太复杂了,引入各种依赖。

    另外,gateway 是 spring webflux 架构,也有很多限制,传统的 servlet 那套很多东西也用不了的
    iminto
        4
    iminto   6 天前
    身份验证,我目前是用的基于 cookie 或 jwt 的方案,逻辑也没多复杂,感觉用起来还行。我之前试过在 gateway 做访问日志,后来发现 response 是异步的,不好处理,弄起来又复杂,还非常影响性能,就放弃这种思路了。所以如果你要是觉得有啥不顺手,那应该是使用姿势不太对
    jzmws
        5
    jzmws   6 天前
    哈哈哈 被坑死了把 ! Filter 初始化时候,bean 还没被注入 !! 不要问我为什么我知道的!
    jzmws
        6
    jzmws   6 天前
    手动用带参初始化 Filter
    Canon1014
        7
    Canon1014   6 天前
    @iminto #4 感谢,在看关于 spring webflux 的东西了,没想到有那么多讲究
    Canon1014
        8
    Canon1014   6 天前
    @jzmws #5 感谢,尝试下吧
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3528 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:58 · PVG 09:58 · LAX 18:58 · JFK 21:58
    ♥ Do have faith in what you're doing.