281.8. ShiroSecurityPolicy で保護されたルートへのメッセージの送信(Camel 2.12 以降)
Camel 2.12 以降では、以下の 2 つの方法でサブジェクトを提供できるため、より容易になりました。
281.8.1. Using ShiroSecurityToken
ユーザー名とパスワードが含まれる org.apache.camel.component.shiro.security.Shiro.security.Shiro.security.ShiroSecurityToken キーのヘッダー
を使用して、Camel ルートにメッセージを送信できます。以下に例を示します。
ShiroSecurityConstants.
SHIRO_SECURITY_TOKEN
ShiroSecurityToken shiroSecurityToken = new ShiroSecurityToken("ringo", "starr"); template.sendBodyAndHeader("direct:secureEndpoint", "Beatle Mania", ShiroSecurityConstants.SHIRO_SECURITY_TOKEN, shiroSecurityToken);
また、以下のように 2 つの異なるヘッダーでユーザー名とパスワードを指定することもできます。
Map<String, Object> headers = new HashMap<String, Object>(); headers.put(ShiroSecurityConstants.SHIRO_SECURITY_USERNAME, "ringo"); headers.put(ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD, "starr"); template.sendBodyAndHeaders("direct:secureEndpoint", "Beatle Mania", headers);
ユーザー名とパスワードのヘッダーを使用すると、Camel ルートの ShiroSecurityPolicy はトークンを持つ ShiroSecurityConstants.SHIRO_SECURITY_TOKEN キーを持つ単一のヘッダーに自動的に変換されます。次に、トークンは ShiroSecurityToken
インスタンスまたは base64 表現のいずれかを String として指定します(後者は base64=true を設定した場合)。