From 94a2d9eb867cb7b74c41e8eff9157c518e18408f Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Thu, 28 Dec 2017 11:06:35 +0000
Subject: [PATCH] Erste Version des MarkdownServlets fertig zum Test

---
 src/de/uhilger/wbx/web/WbxServlet.java |   48 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/src/de/uhilger/wbx/web/WbxServlet.java b/src/de/uhilger/wbx/web/WbxServlet.java
index 5a111b4..fa7f661 100644
--- a/src/de/uhilger/wbx/web/WbxServlet.java
+++ b/src/de/uhilger/wbx/web/WbxServlet.java
@@ -9,20 +9,60 @@
 import java.security.Principal;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import org.apache.catalina.servlets.DefaultServlet;
 
 /**
- *
+ * Das WbxServlet prueft fuer alle HTTP GET Anfragen den Conetxt Path. Wenn 
+ * er /home enthaelt, muss der angemeldete Benutzer mit dem Benutzernamen 
+ * im Pfad uebereinstimmen. Stimmt er nicht ueberein oder ist kein Nutzer 
+ * angemeldet, wird ein Fehler ausgegeben.
+ * 
+ * Alle anderen Pfade als /home werden ohne Anmeldung ausgegeben.
+ * 
+ * Die Ausgabe des Inhalts wird auf die abstrakte Methode seiteAusgeben 
+ * umgeleitet. Serlvets, die von WbxServlet abgeleitet werden, koennen 
+ * die Methode seiteAusgeben so implementieren, dass sie z.B. den 
+ * Inhalt der Ausgabe nach Wunsch veraendern.
+ * 
  * @author ulrich
  */
-public class WbxServlet extends DefaultServlet {
+public abstract class WbxServlet extends DefaultServlet {
   
   protected static final Logger logger = Logger.getLogger(WbxServlet.class.getName());
   protected static final String HOME_CTX = "/home";
   
+  /**
+   * Handles the HTTP <code>GET</code> method.
+   *
+   * @param request servlet request
+   * @param response servlet response
+   * @throws ServletException if a servlet-specific error occurs
+   * @throws IOException if an I/O error occurs
+   */
+  @Override
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  {
+    String contextPath = request.getContextPath();
+    if(HOME_CTX.equals(contextPath)) {
+      String userName = getUserName(request);
+      if (userName != null) {
+        String urlUser = getUrlUser(request, userName);
+        if(userName.equals(urlUser)) {
+          seiteAusgeben(request, response);
+        } else {
+          logger.fine("Wrong user.");
+        }
+      } else {
+        logger.fine("Missing login.");
+      }
+    } else {
+      seiteAusgeben(request, response);
+    }
+  }
   
-  protected String getUrlUser(HttpServletRequest request, String userName) throws IOException {
+  protected String getUrlUser(HttpServletRequest request, String userName) {
     String result = "";
     String requestUrlStr = request.getRequestURL().toString();
     String contextPath = request.getContextPath();
@@ -48,5 +88,7 @@
     }
     return userName;
   }
+  
+  protected abstract void seiteAusgeben(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
 
 }

--
Gitblit v1.9.3