第 324 章 Spring Security

可作为 Camel 2.3 提供

camel-spring-security 组件为 Camel 路由提供基于角色的授权。它利用 Spring Security (以前称为 Acegi Security)提供的身份验证和用户服务,并添加了一个声明式、基于角色的策略系统来控制路由是否可由给定主体执行。

如果您不熟悉 Spring Security 身份验证和授权系统,请查看上面链接的 SpringSource 网站的当前参考文档。

324.1. 创建授权策略

对路由的访问由 SpringSecurityAuthorizationPolicy 对象的实例控制。策略对象包含运行一组端点所需的 Spring Security authority (角色)的名称,并引用用于决定当前主体是否已分配该角色的 Spring Security AuthenticationManagerAccessDecisionManager 对象。策略对象可以被配置为 Spring Bean,也可以使用 Spring XML 中的 &lt ;authorizationPolicy > 元素。

& lt;authorizationPolicy > 元素可包含以下属性:

名称默认值描述

id

null

唯一的 Spring Bean 标识符,用于引用路由中的策略(必需)

access

null

传递给访问决策管理器的 Spring Security authority 名称(必需)

authenticationManager

authenticationManager

上下文中 Spring Security AuthenticationManager 对象的名称

accessDecisionManager

accessDecisionManager

上下文中 Spring Security AccessDecisionManager 对象的名称

authenticationAdapter

DefaultAuthenticationAdapter

Camel 2.4 用于转换 javax.security.auth.Subject 中的 camel-spring-security AuthenticationAdapter 对象的名称,用于将 javax.security.auth.Subject 转换为 Spring Security Authentication 实例。

useThreadSecurityContext

true

如果在 Exchange .AUTHENTICATION 下的 In message 标头中找不到 javax.security.auth.auth.Subject,请检查 Spring Security SecurityContextHolder for Authentication 对象。

alwaysReauthenticate

false

如果设置为 true,则 SpringSecurityAuthorizationPolicy 将在每次访问策略时始终调用 AuthenticationManager.authenticate ()