Dropwizard中的自定义Jetty过滤器

时间:2013-10-03 18:33:05

标签: jetty dropwizard

我正在尝试在Dropwizard实例中添加自定义标头过滤器,以检查请求的版本是否同步到Dropwizard实例的版本。

我发现您可以使用FilterBuilder添加码头CrossOriginFilters。但是,我无法弄清楚如何设置自定义过滤器。

由于

2 个答案:

答案 0 :(得分:11)

通过Environment类。

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)

来选择哪些调度类型

答案 1 :(得分:7)

这就是我使用Dropwwizard 0.7.1让它工作的方式(API似乎已经从我在那里发现的其他例子中改变了)

在你的应用程序的run方法中:

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

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