我们想对 Spring Boot 应用程序中的所有 API 端点执行验证。验证逻辑依赖于将少量请求属性传递给另一个服务 S 并从该远程服务 S 获取验证结果。此验证逻辑对所有 API 端点都是通用的。
我们希望以 Spring MVC 拦截器或 Servlet 过滤器的形式只实现一次验证器。但是,在任一拦截器/过滤器中,我们都需要对服务 S 进行网络调用。
实现这一目标的最佳方法是什么?如果没有通用的拦截器/过滤器验证器,此验证将成为每个 Spring Rest Controller 的每个 API 端点的一部分,然后我们可以返回DeferredResult。但是,将此逻辑推送到 Interceptor 会使原始 Rest 控制器处理程序中的 DeferredResult 难以使用。