1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.rest.web;
21
22 import com.sun.jersey.spi.container.ContainerRequest;
23 import com.sun.jersey.spi.container.ContainerResponse;
24 import com.sun.jersey.spi.container.ContainerResponseFilter;
25
26
27
28
29
30
31
32
33
34 public class AllowAjaxFilter implements ContainerResponseFilter
35 {
36
37 private static final String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";
38 private static final String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods";
39 private static final String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers";
40 private static final String ACCESS_CONTROL_REQUEST_METHOD = "access-control-request-method";
41 private static final String ACCESS_CONTROL_REQUEST_HEADERS = "access-control-request-headers";
42
43 public ContainerResponse filter( ContainerRequest request,
44 ContainerResponse response )
45 {
46
47 response.getHttpHeaders().add( ACCESS_CONTROL_ALLOW_ORIGIN, "*" );
48
49
50 if ( request.getRequestHeaders().containsKey(
51 ACCESS_CONTROL_REQUEST_METHOD ) )
52 {
53
54 for ( String value : request.getRequestHeaders().get(
55 ACCESS_CONTROL_REQUEST_METHOD ) )
56 {
57 response.getHttpHeaders().add( ACCESS_CONTROL_ALLOW_METHODS,
58 value );
59 }
60 }
61
62
63 if ( request.getRequestHeaders().containsKey(
64 ACCESS_CONTROL_REQUEST_HEADERS ) )
65 {
66 for ( String value : request.getRequestHeaders().get(
67 ACCESS_CONTROL_REQUEST_HEADERS ) )
68 {
69 response.getHttpHeaders().add( ACCESS_CONTROL_ALLOW_HEADERS,
70 value );
71 }
72 }
73
74 return response;
75 }
76
77 }