From 5bfcdd214e1e6b3b7653009137d316dabadcda91 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Wed, 27 Dec 2017 19:47:17 +0000 Subject: [PATCH] Fortsetzung am MarkdownServlet --- src/de/uhilger/wbx/web/ViewServlet.java | 9 ++-- src/de/uhilger/wbx/web/WbxServlet.java | 52 ++++++++++++++++++++++++++ src/de/uhilger/wbx/web/MarkdownServlet.java | 41 +++++++++++++++++++- 3 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/de/uhilger/wbx/web/MarkdownServlet.java b/src/de/uhilger/wbx/web/MarkdownServlet.java index 7589201..58bfbc3 100644 --- a/src/de/uhilger/wbx/web/MarkdownServlet.java +++ b/src/de/uhilger/wbx/web/MarkdownServlet.java @@ -17,12 +17,49 @@ */ package de.uhilger.wbx.web; -import org.apache.catalina.servlets.DefaultServlet; +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * * @author ulrich */ -public class MarkdownServlet extends DefaultServlet { +public class MarkdownServlet extends WbxServlet { + + + /** + * 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); + } + } + + private void seiteAusgeben(HttpServletRequest request, HttpServletResponse response) { + + } } diff --git a/src/de/uhilger/wbx/web/ViewServlet.java b/src/de/uhilger/wbx/web/ViewServlet.java index 20106a3..891a98f 100644 --- a/src/de/uhilger/wbx/web/ViewServlet.java +++ b/src/de/uhilger/wbx/web/ViewServlet.java @@ -18,14 +18,11 @@ package de.uhilger.wbx.web; import java.io.IOException; -import java.security.Principal; -import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.catalina.servlets.DefaultServlet; /** * Das ViewServlet fügt dem DefaultServlet von Tomcat @@ -36,10 +33,10 @@ * * TODO: Stylesheets dynamisch einbinden */ -public class ViewServlet extends DefaultServlet { +public class ViewServlet extends WbxServlet { private static final Logger logger = Logger.getLogger(ViewServlet.class.getName()); - private static final String HOME_CTX = "/home"; + //private static final String HOME_CTX = "/home"; /** * Handles the HTTP <code>GET</code> method. @@ -92,6 +89,7 @@ out.print("</body></html>"); } + /* private String getUrlUser(HttpServletRequest request, String userName) throws IOException { String result = ""; String requestUrlStr = request.getRequestURL().toString(); @@ -118,6 +116,7 @@ } return userName; } + */ /** * Returns a short description of the servlet. diff --git a/src/de/uhilger/wbx/web/WbxServlet.java b/src/de/uhilger/wbx/web/WbxServlet.java new file mode 100644 index 0000000..5a111b4 --- /dev/null +++ b/src/de/uhilger/wbx/web/WbxServlet.java @@ -0,0 +1,52 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package de.uhilger.wbx.web; + +import java.io.IOException; +import java.security.Principal; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.servlet.http.HttpServletRequest; +import org.apache.catalina.servlets.DefaultServlet; + +/** + * + * @author ulrich + */ +public class WbxServlet extends DefaultServlet { + + protected static final Logger logger = Logger.getLogger(WbxServlet.class.getName()); + protected static final String HOME_CTX = "/home"; + + + protected String getUrlUser(HttpServletRequest request, String userName) throws IOException { + String result = ""; + String requestUrlStr = request.getRequestURL().toString(); + String contextPath = request.getContextPath(); + if(contextPath != null && requestUrlStr != null && userName != null) { + int start = requestUrlStr.indexOf(contextPath); + start += contextPath.length(); + start++; + int end = start + userName.length(); + try { + result = requestUrlStr.substring(start, end); + } catch(Exception ex) { + logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex); + } + } + return result; + } + + protected String getUserName(HttpServletRequest hr) { + String userName = null; + Object p = hr.getUserPrincipal(); + if (p instanceof Principal) { + userName = ((Principal) p).getName(); + } + return userName; + } + +} -- Gitblit v1.9.3