第323章 Spring Security

Camel 2.3 の時点で利用可能

camel-spring-security コンポーネントは、Camel ルートにロールベースの承認を提供します。これは、Spring Security (以前の Acegi Security) によって提供される認証およびユーザーサービスを活用し、特定のプリンシパルによってルートを実行できるかどうかを制御する宣言型のロールベースのポリシーシステムを追加します。

Spring Security の認証および認可システムに慣れていない場合は、上記のリンク先の SpringSource Web サイトにある最新のリファレンスドキュメントを参照してください。

323.1. 認可ポリシーの作成

ルートへのアクセスは、SpringSecurityAuthorizationPolicy オブジェクトのインスタンスによって制御されます。ポリシーオブジェクトには、一連のエンドポイントを実行するために必要な Spring Security 権限 (ロール) の名前と、現在のプリンシパルにそのロールが割り当てられているかどうかを判断するために使用される Spring Security AuthenticationManager および AccessDecisionManager オブジェクトへの参照が含まれています。ポリシーオブジェクトは、Spring Bean として設定するか、Spring XML の <authorizationPolicy> 要素を使用して設定できます。

<authorizationPolicy> 要素には、次の属性を含めることができます。

名前デフォルト値説明

id

null

ルートでポリシーを参照するために使用される一意の Spring Bean 識別子 (必須)

access

null

アクセス Decision Manager に渡される Spring Security 権限名 (必須)

authenticationManager

authenticationManager

コンテキスト内の Spring Security AuthenticationManager オブジェクトの名前

accessDecisionManager

accessDecisionManager

コンテキスト内の Spring Security AccessDecisionManager オブジェクトの名前

authenticationAdapter

DefaultAuthenticationAdapter

Camel 2.4 javax.security.auth.Subject を Spring Security Authentication インスタンスに変換するために使用されるコンテキスト内の camel-spring-security AuthenticationAdapter オブジェクトの名前。

useThreadSecurityContext

true

Exchange.AUTHENTICATION の下の In メッセージヘッダーで javax.security.auth.Subject が見つからない場合は、Authentication オブジェクトの Spring Security SecurityContextHolder を確認してください。

alwaysReauthenticate

false

true に設定すると、SpringSecurityAuthorizationPolicy は、ポリシーにアクセスするたびに常に AuthenticationManager.authenticate() を呼び出します。