第 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 上下文中的其他路由。
使用 Ini 文件(properties 文件)或 Ini 对象向 ShiroSecurityPolicy 提供配置详情。Ini 文件是一个标准 Shiro 配置文件,其中包含用户/角色详情,如下所示
[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:*