【发布时间】:2020-09-11 04:42:45
【问题描述】:
我正在将旧的 HTTP 服务器移植到 Micronaut,但我一直在尝试将使用 javax.ws.rs NameBinding 注释的授权过滤器移植到 Micronaut HTTP 服务器过滤器。我 90% 的端点/控制器使用 NameBinding 注释,因此使用标准的 Micronaut HTTP 服务器过滤器会很困难。
一个臭代码的想法是创建一个接受所有 api 端点的过滤器(即@Filter("/**")),然后可能存储不需要授权的所有路径的列表,并将其与请求的路径进行比较。
我尝试的另一个技巧是尝试通过请求/链反射派生目标方法,但似乎目标方法保存在 @Internal 类中,这让我相信我不应该反思该方法从过滤器。如果我能够从过滤器中反映目标方法,我可以查找我的旧注释并对其进行过滤。
一般来说,是否有任何指导原则可以为除少数几个控制器/方法之外的大部分控制器/方法提供过滤器,例如逆过滤器模式(尽管这也不理想)?
micronaut 有没有办法手动控制过滤器的注入?
【问题讨论】: