准备用 gateway 的过滤器做身份验证,但是 FeignClient 的 Service 总是注入失败(报错为 service 为 null )。
搜到了一些解决方法感觉都不好用,开始怀疑这么做是不是不太优雅。>
在 github 上找到了维护人员的回复说 Feign can't be used in gateway filters 。
求教各位有什么办法可以解决吗,或者通过其他方式可以实现这个功能。
![]() | 1 iminto 2021-04-08 08:31:51 +08:00 ![]() |
![]() | 2 Canon1014 OP @iminto #1 尝试过,还是有问题。我现在最纠结的问题是既然这么不方便是不是表示不提倡那么做,或者有更优的方式。 |
![]() | 3 iminto 2021-04-08 11:23:30 +08:00 @Canon1014 gateway 作为网关层,本来就不该弄得太复杂了,引入各种依赖。 另外,gateway 是 spring webflux 架构,也有很多限制,传统的 servlet 那套很多东西也用不了的 |
![]() | 4 iminto 2021-04-08 11:27:17 +08:00 身份验证,我目前是用的基于 cookie 或 jwt 的方案,逻辑也没多复杂,感觉用起来还行。我之前试过在 gateway 做访问日志,后来发现 response 是异步的,不好处理,弄起来又复杂,还非常影响性能,就放弃这种思路了。所以如果你要是觉得有啥不顺手,那应该是使用姿势不太对 |
5 jzmws 2021-04-08 11:48:46 +08:00 哈哈哈 被坑死了把 ! Filter 初始化时候,bean 还没被注入 !! 不要问我为什么我知道的! |
6 jzmws 2021-04-08 11:49:35 +08:00 手动用带参初始化 Filter |
9 jinzhongyuan 2022-01-17 19:18:09 +08:00 哈哈,确实如此 |