302.8. ShiroSecurityPolicy によって保護されたルートへのメッセージの送信 (Camel 2.12 以降でははるかに簡単です)

Camel 2.12 以降では、サブジェクトを 2 つの異なる方法で提供できるため、さらに簡単になります。

302.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 を設定した場合です)。