2013-10-03 5 views
4

Я пытаюсь добавить собственный фильтр заголовка в свой экземпляр Dropwizard, чтобы проверить, синхронизирована ли версия запроса с версией экземпляра Dropwizard.Пользовательские фильтры Jetty в Dropwizard

Я вижу, вы можете использовать FilterBuilder, чтобы добавить пристань CrossOriginFilters. Тем не менее, мне трудно понять, как настроить пользовательский фильтр.

Thanks

ответ

11

Через класс окружающей среды.

https://dropwizard.github.io/dropwizard/manual/core.html#environments

@Override 
public void run(MyApplicationConfiguration configuration, Environment environment) { 
    environment.servlets().addFilter("Custom-Filter-Name", new MyCustomFilter()).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); 
} 

Вы можете выбрать, какие типы отправки путем изменения EnumSet.allOf(DispatcherType.class)

+0

Не могли бы вы уточнить ссылки? –

+0

Api docs переместились, поэтому я обновил все, что мог. –

+1

в новом dropizard 0.7+ это делается следующим образом: environment.servlets(). AddFilter ("/ *", новый CrossOriginFilter()); – Maksim

7

Это, как я получил его на работу, используя Dropwwizard 0.7.1 (появляются API, чтобы изменились из других примеров, которые я узнал, есть)

В способе выполнения вашего приложения:

final FilterRegistration.Dynamic cors = environment.servlets().addFilter("crossOriginRequsts", CrossOriginFilter.class); 
cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*"); 

https://gist.github.com/craigbeck/fb71818063175b9b4210

Смежные вопросы