第 302 章 Shiro Security 组件
可作为 Camel 2.5 提供
Camel 中的 shiro-security 组件是一个基于 Apache Shiro security 项目的安全组件。
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>
302.1. Shiro Security Basics
要在 camel 路由上使用 Shiro Security,B ShiroSecurityPolicy 对象必须使用安全配置详情(包括用户、密码、角色等)进行实例化。然后,此对象必须应用于 camel 路由。此 ShiroSecurityPolicy 对象也可以在 Camel 注册表中注册(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:*