Dropwizard中的自定义Jetty过滤器

Dropwizard中的自定义Jetty过滤器,jetty,dropwizard,Jetty,Dropwizard,我正在尝试在Dropwizard实例中添加自定义标头筛选器,以检查请求的版本是否与Dropwizard实例的版本同步 我知道您可以使用FilterBuilder添加jettyCrossOriginFilters。但是,我很难弄清楚如何设置自定义过滤器 通过环境课程感谢您 您可以通过更改EnumSet.allOf(DispatcherType.class)来选择分派类型。这就是我使用Dropwwizard 0.7.1使其工作的方式(API似乎与我在那里发现的其他示例有所不同) 应用程序的运行中方

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

我知道您可以使用
FilterBuilder
添加jetty
CrossOriginFilters
。但是,我很难弄清楚如何设置自定义过滤器


通过环境课程感谢您


您可以通过更改
EnumSet.allOf(DispatcherType.class)

来选择分派类型。这就是我使用Dropwwizard 0.7.1使其工作的方式(API似乎与我在那里发现的其他示例有所不同)

应用程序的运行中方法:

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

在新的dropsizard 0.7+中,它是这样完成的:environment.servlets().addFilter(“/*”,new CrossOriginFilter())@马克西姆。这是不正确的。dropwizard的0.7.x中addFilter的第一个参数是筛选器名称,而不是映射。它需要调用
addMappingForUrlPatterns(EnumSet dispatcherTypes、boolean isMatchAfter、String…urlPatterns)
final FilterRegistration.Dynamic cors = environment.servlets().addFilter("crossOriginRequsts", CrossOriginFilter.class);
cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");