Java 如何在Jersy中为带有ContainerResponseFilter的CORS允许多个域。?
我正在用JAX-RS实现实现RESTfulWeb服务。 我想允许多个域访问我的Web服务,但不是全部。 目前,我已经编写了以下代码,只允许CORS使用一个域。 有人能告诉我如何在Jersey实现中允许特定的多个域吗Java 如何在Jersy中为带有ContainerResponseFilter的CORS允许多个域。?,java,rest,jersey,cors,Java,Rest,Jersey,Cors,我正在用JAX-RS实现实现RESTfulWeb服务。 我想允许多个域访问我的Web服务,但不是全部。 目前,我已经编写了以下代码,只允许CORS使用一个域。 有人能告诉我如何在Jersey实现中允许特定的多个域吗 public class CORSResponseFilter implements ContainerResponseFilter { public void filter(ContainerRequestContext requestContext, Container
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");
}
}
公共类CORSResponseFilter实现ContainerResponseFilter{
公共无效筛选器(ContainerRequestContext requestContext、ContainerResponseContext responseContext responseContext)引发IOException{
多值映射头=responseContext.getHeaders();
添加(“访问控制允许来源”,“www.xxxxx.com”);
添加(“访问控制允许方法”、“获取、发布、删除、放置”);
headers.add(“访问控制允许头”、“X-request-With、内容类型、X-Codingpedia”);
}
}
动态设置标题值。具有要允许的源的预定义列表。在filter方法中,从请求上下文中获取Origin
头。这将具有请求的源域。对照允许的来源列表进行检查。如果它在列表中,则将来源
标题中的域作为允许的来源。如果它不在那里,抛出一个禁止异常
,表示不允许使用源代码