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

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

  •  
  •   Canon1014 · 2021-04-07 18:35:12 +08:00 · 2491 次点击
    这是一个创建于 1363 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    9 条回复    2022-01-17 19:18:09 +08:00
    iminto
        1
    iminto  
       2021-04-08 08:31:51 +08:00   ❤️ 1
    Canon1014
        2
    Canon1014  
    OP
       2021-04-08 09:58:55 +08:00
    @iminto #1 尝试过,还是有问题。我现在最纠结的问题是既然这么不方便是不是表示不提倡那么做,或者有更优的方式。
    iminto
        3
    iminto  
       2021-04-08 11:23:30 +08:00
    @Canon1014 gateway 作为网关层,本来就不该弄得太复杂了,引入各种依赖。

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