diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 6dae373..ccf218a 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -15,7 +15,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6441a40..3c17fda 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,6 +5,9 @@
+
+
+
-
+
diff --git a/MoviesWebApp/pom.xml b/MoviesWebApp/pom.xml
index a8b2a4e..be015c1 100644
--- a/MoviesWebApp/pom.xml
+++ b/MoviesWebApp/pom.xml
@@ -103,8 +103,8 @@
org.apache.maven.plugins
maven-compiler-plugin
- 9
- 9
+ 10
+ 10
diff --git a/MoviesWebApp/src/main/java/at/technikumwien/movies/ResponseFilter.java b/MoviesWebApp/src/main/java/at/technikumwien/movies/ResponseFilter.java
new file mode 100644
index 0000000..7da5945
--- /dev/null
+++ b/MoviesWebApp/src/main/java/at/technikumwien/movies/ResponseFilter.java
@@ -0,0 +1,37 @@
+package at.technikumwien.movies;
+
+import java.io.IOException;
+
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.core.CacheControl;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.Provider;
+
+@Provider
+public class ResponseFilter implements ContainerResponseFilter {
+ @Override
+ public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
+ var requestHeaders = request.getHeaders();
+ var responseHeaders = response.getHeaders();
+
+ responseHeaders.add("Access-Control-Allow-Origin", getRequestOrigin(requestHeaders));
+ responseHeaders.add("Access-Control-Allow-Methods", "GET, DELETE, OPTIONS, POST, PUT");
+ responseHeaders.add("Access-Control-Allow-Headers", getRequestHeaders(requestHeaders));
+
+ var cacheControl = new CacheControl();
+ cacheControl.setNoCache(true);
+ responseHeaders.add("Cache-Control", cacheControl);
+ }
+
+ private String getRequestOrigin(MultivaluedMap requestHeaders) {
+ var origin = requestHeaders.getFirst("Origin");
+ return (origin != null ? origin : "null");
+ }
+
+ private String getRequestHeaders(MultivaluedMap requestHeaders) {
+ var headers = requestHeaders.get("Access-Control-Request-Headers");
+ return (headers != null ? String.join(", ", headers) : "");
+ }
+}
\ No newline at end of file