在我们的Web应用程序中,我们使用camel作为编排/路由Web服务的核心部分,它将连接到其他几个本地资源。
有人可以建议,编写上下文级别(全局/一次)图层的最佳方法是什么。
例如,我们想要编写一个全局安全层,它执行基于特征码的基本身份验证,这将是应用程序中任何路由的第一步。 我们希望在全局级别(CamelContext?)配置此逻辑,这样我们就不需要在我们构建的每个路由中编写/添加此过程。
此外,如果有多个这样的层(比如安全性,验证等等),是否可以设置它们需要执行的顺序?。
非常感谢任何类型的示例或阅读指针。
答案 0 :(得分:1)
你应该看看Route Policies可以挂钩路由执行并执行你描述的事情。您当然可以按照您想要的任何顺序将策略委托给各种授权/验证/日志记录。
要将策略添加到每个路径,请创建工厂并分配给上下文。
context.addRoutePolicyFactory(new TheSpecialSecurityAndValidationPolicyFactory());
但是,为了安全起见,不同的协议倾向于使用不同的方法实现安全性。在SOAP中,您可以检查传输级别安全性(Basic Auth,SSL,..),还可以检查消息级别安全性(WS-Security)。在其他协议中,您可能只能检查传输和/或消息级安全性令牌。
如果您想要一些常见的安全堆栈来处理更高级别的安全性,我建议您查看Apache Shiro。它很好integrated with Apache Camel。