From 5e8529e89ec34733a14084fad734111cce0dc4eb Mon Sep 17 00:00:00 2001 From: karl Date: Thu, 5 Dec 2019 14:47:21 +0100 Subject: [PATCH] Today's things: HTML JavaScript client and some other things --- .idea/compiler.xml | 2 +- .idea/misc.xml | 3 ++ .../MoviesWebServiceClient.java | 2 +- MoviesClient/web/index.html | 40 +++++++++++++++++++ MoviesWebApp/MoviesWebApp.iml | 2 +- MoviesWebApp/pom.xml | 4 +- .../technikumwien/movies/ResponseFilter.java | 37 +++++++++++++++++ 7 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 MoviesClient/web/index.html create mode 100644 MoviesWebApp/src/main/java/at/technikumwien/movies/ResponseFilter.java 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