4

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

我看到你可以FilterBuilder用来添加 jetty CrossOriginFilters。但是,我无法弄清楚如何设置自定义过滤器。

谢谢

4

2 回答 2

13

通过环境类。

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, "/*");
}

您可以通过更改来选择哪些 Dispatch 类型EnumSet.allOf(DispatcherType.class)

于 2013-11-08T12:14:52.123 回答
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

于 2014-07-11T00:12:11.423 回答