如何向我的Dropwizard应用程序添加过滤器,以验证每个资源返回的响应?
我应该使用javax.servlet.Filter还是javax.ws.rs.container.ContainerResponseFilter
任何与其用途有关的示例将不胜感激。
要使用dropwizard为所有资源添加响应过滤器,您可以执行以下操作:
创建一个扩展的 CustomFilter javax.servlet.Filter-
public class CustomFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
// your filtering task
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
Run Code Online (Sandbox Code Playgroud)然后将相同的内容注册到您的Service扩展中Application-
public class CustomService extends Application<CustomConfig> { //CustomConfig extend 'io.dropwizard.Configuration'
public static void main(String[] args) throws Exception {
new CustomService().run(args);
}
@Override
public void initialize(Bootstrap<CustomConfig> someConfigBootstrap) {
// do some initialization
}
@Override
public void run(CustomConfig config, io.dropwizard.setup.Environment environment) throws Exception {
... // resource registration
environment.servlets().addFilter("Custom-Filter", CustomFilter.class)
.addMappingForUrlPatterns(java.util.EnumSet.allOf(javax.servlet.DispatcherType.class), true, "/*");
}
}
Run Code Online (Sandbox Code Playgroud)您现在应该可以使用CustomFilter上面定义的过滤所有资源了。
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |