302.7. 将消息发送到由 ShiroSecurityPolicy 保护的路由

在 ExchangeHeader 中的 SecurityToken (SecurityToken)中,在 camel 路由中发送的消息和消息交换程序需要被安全策略应用。SecurityToken 是一个加密对象,包含 Username 和 Password。SecurityToken 默认使用 AES 128 位安全加密,并可改为您选择的任何密码。

下面是如何在 Camel 中使用 ProducerTemplate 以及 SecurityToken 发送请求的示例。

    @Test
    public void testSuccessfulShiroAuthenticationWithNoAuthorization() throws Exception {
        //Incorrect password
        ShiroSecurityToken shiroSecurityToken = new ShiroSecurityToken("ringo", "stirr");

        // TestShiroSecurityTokenInjector extends ShiroSecurityTokenInjector
        TestShiroSecurityTokenInjector shiroSecurityTokenInjector =
            new TestShiroSecurityTokenInjector(shiroSecurityToken, passPhrase);

        successEndpoint.expectedMessageCount(1);
        failureEndpoint.expectedMessageCount(0);

        template.send("direct:secureEndpoint", shiroSecurityTokenInjector);

        successEndpoint.assertIsSatisfied();
        failureEndpoint.assertIsSatisfied();
    }