Как заменить DefaultHeaderFilterStrategy - PullRequest
0 голосов
/ 18 сентября 2019

Я знаю, что могу установить HeaderFilterStrategy для конкретной конечной точки, но ...

Как можно переопределить DefaultHeaderFilterStrategy с помощью пользовательской стратегии, которая будет применяться ко всем маршрутам?

Мы используем Servlet Listener от Camel.Можем ли мы предоставить что-то в конфигурации (задокументировано здесь) , чтобы заменить DefaultHeaderFilterStrategy нашим собственным классом?

1 Ответ

1 голос
/ 19 сентября 2019

Вы можете создать свою собственную реализацию класса HeaderFilterStrategy и обратиться к нему в конфигурации конечной точки

<lang:groovy id="MyHeaderFilter">
    <lang:inline-script>
        import org.apache.camel.Exchange
        import org.apache.camel.spi.HeaderFilterStrategy

        class MyHeaderFilter implements HeaderFilterStrategy {
            public boolean applyFilterToCamelHeaders(String headerName, Object headerValue, Exchange exchange) {
                return false
            }
            public boolean applyFilterToExternalHeaders(String headerName, Object headerValue, Exchange exchange) {
                return !(headerName in ['desirableHeaderName'])
}
        }
    </lang:inline-script>
</lang:groovy>

, а затем

<to uri="activemq:dummy?headerFilterStrategy=#MyHeaderFilter"/>

UPD.
Также можно установить пользовательский фильтр заголовка для всего компонента

<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
  <property name="headerFilterStrategy" ref="MyHeaderFilter"/>
</bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...