仅限特定API网址的RestEasy CorsFilter

时间:2017-02-28 19:14:01

标签: java cors jax-rs resteasy

我想按照以下方式设置resteasy cors过滤器(如果重要的话,我也会使用spring):

@Provider
@Component
public class CorsConfiguration implements Feature {

  @Override
  public boolean configure(FeatureContext context) {

    CorsFilter corsFilter = new CorsFilter();
    corsFilter.getAllowedOrigins().add("*");
    context.register(corsFilter);
    return true;
  }

}

它正常工作。我的问题是我只想为某些API启用CORS,而且我没有在CorsFilter类中看到任何关于URL的配置。我不是在询问允许的Origins,而是要求允许CORS的URL。

我尝试创建一个匿名的内部类,但由于某种原因,整个过程停止了工作:

@Provider
@Component
public class CorsConfiguration implements Feature {

  @Override
  public boolean configure(FeatureContext context) {

    CorsFilter corsFilter = new CorsFilter() {

      @Override
      protected void preflight(String origin, javax.ws.rs.container.ContainerRequestContext requestContext) throws IOException {

        //check requestContext URI info here..

        //call super method
        super.preflight(origin, requestContext);
      }
    };
    corsFilter.getAllowedOrigins().add("*");
    context.register(corsFilter);
    return true;
  }

}

我确实设法在不使用resteasy CorsFilter类的情况下做我想做的事情,而是为我想要的URL定义一个@OPTIONS api端点。但是想知道是否可以用上面提到的方法来做到这一点。

由于

0 个答案:

没有答案