296.8. ShiroSecurityPolicy によって保護されたルートへのメッセージの送信 (Camel 2.12 以降でははるかに簡単です)
Camel 2.12 以降では、サブジェクトを 2 つの異なる方法で提供できるため、さらに簡単になります。
296.8.1. ShiroSecurityToken の使用
ユーザー名とパスワードを含むタイプ org.apache.camel.component.shiro.security.ShiroSecurityToken
のキー ShiroSecurityConstants.SHIRO_SECURITY_TOKEN
のヘッダーを持つメッセージを Camel ルートに送信できます。以下に例を示します。
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 とトークンを持つ単一のヘッダーに自動的に変換します。次に、token は ShiroSecurityToken
インスタンス、または文字列としての base64 表現です (後者は、base64=true を設定した場合です)。