准备用 gateway 的过滤器做身份验证,但是 FeignClient 的 Service 总是注入失败(报错为 service 为 null )。
搜到了一些解决方法感觉都不好用,开始怀疑这么做是不是不太优雅。
在 github 上找到了维护人员的回复说 Feign can't be used in gateway filters 。
求教各位有什么办法可以解决吗,或者通过其他方式可以实现这个功能。
1
iminto 2021-04-08 08:31:51 +08:00 1
|
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
哈哈,确实如此
|