From a10878d49afa84faf848babad086f0dbb9de900d Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Thu, 17 Oct 2019 21:08:07 +0200
Subject: [PATCH] #4 Firest version of frontend http filter (not working)

---
 .../fgbks/dmn/frontend/HttpFilter.java        | 40 +++++++++++++------
 1 file changed, 28 insertions(+), 12 deletions(-)

diff --git a/dmnverifierfrontend/src/main/java/de/unikoblenz/fgbks/dmn/frontend/HttpFilter.java b/dmnverifierfrontend/src/main/java/de/unikoblenz/fgbks/dmn/frontend/HttpFilter.java
index 8cd00312..f2e5ee30 100644
--- a/dmnverifierfrontend/src/main/java/de/unikoblenz/fgbks/dmn/frontend/HttpFilter.java
+++ b/dmnverifierfrontend/src/main/java/de/unikoblenz/fgbks/dmn/frontend/HttpFilter.java
@@ -1,25 +1,41 @@
 package de.unikoblenz.fgbks.dmn.frontend;
 
-import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.net.URI;
+import javax.annotation.Priority;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.core.Context;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.Provider;
 
 @Provider
+@PreMatching
 public class HttpFilter implements ContainerRequestFilter {
 
-  @Context
-  UriInfo info;
-  @Context
-  HttpServletRequest request;
-
   @Override
-  public void filter(ContainerRequestContext context) {
-    final String method = context.getMethod();
-    final String path = info.getPath();
-    final String address = request.getRemoteAddr();
-    System.out.format("Request %s %s from IP %s %n + x", method, path, address);
+  public void filter(ContainerRequestContext reqContext) throws IOException {
+    System.out.println("-- request info --");
+    UriInfo uriInfo = reqContext.getUriInfo();
+    System.out.println(uriInfo.getRequestUri().toString());
+    System.out.println(reqContext.getMethod());
+    log(uriInfo, reqContext.getHeaders());
+
+    reqContext.abortWith(Response.noContent().build());
+    reqContext.setRequestUri(URI.create("/index.html"));
+
+    System.out.println("-- request info --");
+     uriInfo = reqContext.getUriInfo();
+    System.out.println(uriInfo.getRequestUri().toString());
+    System.out.println(reqContext.getMethod());
+    log(uriInfo, reqContext.getHeaders());
+  }
+
+  private void log(UriInfo uriInfo, MultivaluedMap<String, ?> headers) {
+    System.out.println("Path: " + uriInfo.getPath());
+    System.out.println("HEADERS:");
+    headers.entrySet().forEach(h -> System.out.println(h.getKey() + ": " + h.getValue()));
   }
 }
-- 
GitLab