java - 在 dropwizard 0.7.0 中使用 CORS header 过滤器

标签 java filter jersey cors dropwizard

我正在尝试让 dropwizard 0.7.0 (Jersey) REST 服务发送 HTML CORS header ,如“Access-Control-Allow-Origin”。我找到了各种教程,也了解了如何在 0.7.0 和以前的版本中进行操作的区别。最有前途的方式似乎是described in the dropwizard group但是当我使用给定的代码时,不会发送任何 header 。过滤器似乎不起作用。当我使用自定义过滤器时,它正在被初始化但也没有被使用。到目前为止,日志中没有任何异常。

这是我的(最新的)运行方法:

        @Override
public void run(BackendConfiguration configuration, Environment environment) throws Exception {

    // XXX why doesn't this work?
    FilterRegistration.Dynamic filter = environment.servlets().addFilter("CORS", CrossOriginFilter.class);
    filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
    filter.setInitParameter("allowedOrigins", "*"); // allowed origins comma separated
    filter.setInitParameter("allowedHeaders", "Content-Type,Authorization,X-Requested-With,Content-Length,Accept,Origin");
    filter.setInitParameter("allowedMethods", "GET,PUT,POST,DELETE,OPTIONS,HEAD");
    filter.setInitParameter("preflightMaxAge", "5184000"); // 2 months
    filter.setInitParameter("allowCredentials", "true");


    final DBIFactory factory = new DBIFactory();
    final DBI jdbi = factory.build(environment, configuration.getDataSourceFactory(), "h2");

    environment.jersey().register(new UserResource(jdbi));
}

我做错了什么吗?

最佳答案

来自 CrossOriginFilter:

    String origin = request.getHeader(ORIGIN_HEADER);
    // Is it a cross origin request ?
    if (origin != null && isEnabled(request))

您必须在请求中发送 Origin header 才能使过滤器正常工作。

关于java - 在 dropwizard 0.7.0 中使用 CORS header 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547335/

相关文章:

java - 如何计算某个项目在列表中出现的次数

javascript - 如何在通过单击 "clear"按钮清除过滤器后刷新数据表

jpa - Jersey + HK2 + 灰熊 : Proper way to inject EntityManager?

java - Jersey REST 客户端 : Posting MultiPart data

Java.sql.SQLException : Parameter index out of range 2> 1

java - 我正在准备一个音乐应用程序以及如何将函数从 Song.java 调用到 SongDisplay.java

java - Jibx:为自动生成的类设置默认属性值

Android:ListView 进行搜索过滤

python - Django 查询集按 ISO 周数过滤

java - Jersey Web 服务中 Spring DI 中的 NPE