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