Заголовок авторизации для конечной точки в многоадресной рассылке с использованием Apache Camel - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь добавить заголовки авторизации, я могу это сделать, но тогда аутентификация одинакова для всех конечных точек. В моем случае мне нужны разные заголовки для каждой конечной точки. Я попытался использовать его в процессоре, но не могу различить, для какой конечной точки я устанавливаю заголовки:

В приведенном ниже коде мне нужно https://call1/agreements и https://call2/agreements, чтобы иметь отдельную аутентификациюзаголовки. Ниже мой маршрут.

public class AgreementRoute extends RouteBuilder {
    public void configure(){
        try
        {
            from("jetty://http://0.0.0.0:9191/agreement")
                .log(LoggingLevel.INFO, "${body}")
                .setProperty("test.body", body())
                // .removeHeaders("CamelHttp*")
                // .setHeader("Content-Type", constant("application/json"))
                // .setHeader(Exchange.HTTP_METHOD, constant("POST"))
                // .setHeader("Authorization", constant("<secret here"))
                // .setBody(exchangeProperty("test.body"))
                .multicast().onPrepare(new AgreementProcessor())
                .to("https://call1/agreements", "https://call2/agreements");
        }
        catch(Exception ex)
        {
            ex.printStackTrace(System.out);
            System.out.println(ex.getMessage());
        }
    }
}

А вот пользовательский Процессор:

public class AgreementProcessor implements Processor {
    public void process (Exchange exchange) throws Exception {

        System.out.println("ExchagneID: " + exchange.getContext());
        Map<String, Object> headers = exchange.getIn().getHeaders();
        Object bodyObjectIn = exchange.getIn().getBody();
        System.out.println("Exchange.DESTINATION_OVERRIDE_URL: " + exchange.getIn().getHeader(Exchange.DESTINATION_OVERRIDE_URL));

        System.out.println("Exchange.RECIPIENT_LIST_ENDPOINT: " + exchange.getIn().getHeader(Exchange.RECIPIENT_LIST_ENDPOINT));
        System.out.println("bodyObjectIn: " + bodyObjectIn.toString());
        System.out.println("Printing getIn().headers");
        for (Map.Entry<String, Object> entry : headers.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            System.out.println(key + " : " + value);
        }
        exchange.removeProperties("Authorization");
    }    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...