在ContainerResponseFilter中获得响应(JAX-RS 2)

Jan*_*sen 5 java jax-rs jax-ws cors

我试图将此CORS过滤器移植到JAX-RS 2.

不过,我看不出如何让响应对象(如旧代码)从ContainerResponseContext我得到的重载方法传递ContainerResponseFilter.

如果有一种更优雅的方式来使用JAX-RS 2进行CORS,那当然是首选.提前致谢.

Car*_*ini 10

THRE的反应是直接访问ContainerResponseContext:

@Provider
public class ResponseCorsFilter implements ContainerResponseFilter{

    @Override
    public void filter(ContainerRequestContext requestContext,
            ContainerResponseContext responseContext) throws IOException {
           responseContext.getHeaders()
                .putSingle("Access-Control-Allow-Origin","*");
           responseContext.getHeaders()
                 .putSingle("Access-Control-Allow-Methods",
                     "GET, POST, PUT, DELETE");
           List<String> reqHead=requestContext.getHeaders()
                     .get("Access-Control-Request-Headers");
           if(null != reqHead){
                responseContext.getHeaders()
                   .put("Access-Control-Allow-Headers", 
                        new ArrayList<Object>(reqHead));
           }
    }

}
Run Code Online (Sandbox Code Playgroud)