【问题标题】:How to allow multiple domains for CORS with ContainerResponseFilter in Jersy.?如何在 Jersey 中使用 ContainerResponseFilter 允许 CORS 的多个域。?
【发布时间】:2017-11-23 04:12:24
【问题描述】:

我正在使用 JAX-RS jersey 实现来实现 RESTful Web 服务。 我想允许多个域访问我的网络服务,但不是全部。 目前我已经编写了下面的代码,只允许一个域用于 CORS。 谁能解释我如何在泽西岛实现中允许特定的多个域。?

public class CORSResponseFilter implements ContainerResponseFilter {

    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {

        MultivaluedMap<String, Object> headers = responseContext.getHeaders();
        headers.add("Access-Control-Allow-Origin", "www.xxxxx.com");
        headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");          
        headers.add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-Codingpedia");
    }
}

【问题讨论】:

    标签: java rest jersey cors


    【解决方案1】:

    动态设置标头值。有一个您想要允许的预定义来源列表。在 filter 方法中,从请求上下文中获取 Origin 标头。这将具有请求的原始域。对照允许的来源列表进行检查。如果它在列表中,则将 Origin 标头中的域作为允许的来源。如果它不在那里,抛出一个ForbiddenException 说来源是不允许的。

    【讨论】:

      猜你喜欢
      • 2015-01-15
      • 2016-08-03
      • 1970-01-01
      • 2020-07-02
      • 2018-06-26
      • 2022-09-28
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      相关资源
      最近更新 更多