2017-06-20 59 views
1

我正在使用JAX-RS球衣执行实现RESTful Web服务。 我想允许多个域访问我的web服务,但不是全部。 目前我写下面的代码只允许一个域的CORS。 任何人都可以向我解释如何在Jersey实现中允许特定的多个域。如何在Jersy中使用ContainerResponseFilter为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"); 
    } 
} 

回答

1

以编程方式设置标头值。有一个预定义的你想要允许的来源列表。在过滤方法中,从请求上下文中获取Origin头。这将具有请求的原始域。请检查允许的来源列表。如果它在列表中,则将Origin标题中的域作为允许的来源。如果它不在那里,请抛出一个ForbiddenException,表示不允许来源。

相关问题