第302章 Shiro Security コンポーネント

Camel 2.5 で利用可能

Camel の shiro-security コンポーネントは、Apache Shiro セキュリティープロジェクトに基づくセキュリティー重視のコンポーネントです。

Apache Shiro は、認証、承認、エンタープライズセッション管理、および暗号化を適切に処理する、強力で柔軟なオープンソースセキュリティーフレームワークです。Apache Shiro プロジェクトの目的は、最も堅牢で包括的なアプリケーションセキュリティーフレームワークを提供すると同時に、非常に理解しやすく、非常に使いやすいものにすることです。

この camel shiro-security コンポーネントを使用すると、認証と承認のサポートを camel ルートのさまざまなセグメントに適用できます。

Shiro セキュリティーは、Camel ポリシーを使用してルートに適用されます。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 セキュリティーの基本

camel ルートで Shiro セキュリティーを使用するには、ShiroSecurityPolicy オブジェクトをセキュリティー設定の詳細 (ユーザー、パスワード、ロールなどを含む) でインスタンス化する必要があります。次に、このオブジェクトを camel ルートに適用する必要があります。この ShiroSecurityPolicy オブジェクトは、Camel レジストリー (JNDI または ApplicationContextRegistry) に登録され、Camel コンテキストの他のルートで使用される場合もあります。

設定の詳細は、Ini ファイル (プロパティーファイル) または 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:*