第 303 章 Shiro Security 组件
从 Camel 2.5 开始提供
Camel 中的 shiro-security 组件是一个基于 Apache Shiro 安全项目的安全集中组件。
Apache Shiro 是一个强大而灵活的开源安全框架,可完全处理身份验证、授权、企业会话管理和加密。Apache Shiro 项目的目标是提供最强大、最全面的应用程序安全框架,同时易于理解和使用。
此 camel shiro-security 组件允许身份验证和授权支持应用到 camel 路由的不同片段。
使用 Camel 策略在路由上应用 Shiro 安全性。Camel 中的策略利用策略模式在 Camel 处理器上应用拦截器。它提供对 camel 路由 的部分/网段应用跨快捷方式问题(例如,安全、事务等)的能力。
Maven 用户需要将以下依赖项添加到这个组件的 pom.xml
中:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-shiro</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
303.1. Shiro 安全基础
要在 camel 路由中使用 Shiro 安全性,ShiroSecurityPolicy 对象必须使用安全配置详情(包括用户、密码、角色等)实例化。然后,此对象必须应用到 camel 路由。此 ShiroSecurityPolicy 对象也可以在 Camel registry (JNDI 或 ApplicationContextRegistry)中注册,然后用于 Camel 上下文中的其他路由。
配置详情由 ShiroSecurityPolicy 使用 Ini 文件(properties 文件)或 Ini 对象提供给 ShiroSecurityPolicy。Ini 文件是一个标准 Shiro 配置文件,其中包含 user/role 详情,如下所示
[users] # user 'ringo' with password 'starr' and the 'sec-level1' role ringo = starr, sec-level1 george = harrison, sec-level2 john = lennon, sec-level3 paul = mccartney, sec-level3 [roles] # 'sec-level3' role has all permissions, indicated by the # wildcard '*' sec-level3 = * # The 'sec-level2' role can do anything with access of permission # readonly (*) to help sec-level2 = zone1:* # The 'sec-level1' role can do anything with access of permission # readonly sec-level1 = zone1:readonly:*