1
+ package se .kth .md .it .bcm .servlet ;
2
+
3
+ import javax .ws .rs .container .ContainerRequestContext ;
4
+ import javax .ws .rs .container .ContainerResponseContext ;
5
+ import javax .ws .rs .container .ContainerResponseFilter ;
6
+ import javax .ws .rs .ext .Provider ;
7
+ import java .io .IOException ;
8
+
9
+ /**
10
+ * Allows OSLC requests to be made to the server from the web browser from another domain.
11
+ */
12
+ @ Provider
13
+ public class OslcCorsFilter implements ContainerResponseFilter {
14
+
15
+ @ Override
16
+ public void filter (ContainerRequestContext requestContext ,
17
+ ContainerResponseContext responseContext ) throws IOException {
18
+ String originAllow = "*" ;
19
+ final String requestOrigin = requestContext .getHeaderString ("Origin" );
20
+ if (requestOrigin != null ) {
21
+ //needed to enable Access-Control-Allow-Credentials
22
+ originAllow = requestOrigin ;
23
+ }
24
+ responseContext .getHeaders ().add (
25
+ "Access-Control-Allow-Origin" , originAllow );
26
+ responseContext .getHeaders ().add (
27
+ "Access-Control-Allow-Credentials" , "true" );
28
+ responseContext .getHeaders ().add (
29
+ "Access-Control-Allow-Headers" ,
30
+ "origin, content-type, accept, authorization, oslc-core-version, Configuration-Context, OSLC-Configuration-Context" );
31
+ responseContext .getHeaders ().add (
32
+ "Access-Control-Allow-Methods" ,
33
+ "GET, POST, PUT, DELETE, OPTIONS, HEAD" );
34
+ }
35
+ }
0 commit comments