| | |
| | | package de.uhilger.wbx.web;
|
| | |
|
| | | import java.io.IOException;
|
| | | import java.io.OutputStream;
|
| | | import java.security.Principal;
|
| | | import java.util.logging.Level;
|
| | | import java.util.logging.Logger;
|
| | | import javax.servlet.ServletException;
|
| | | import javax.servlet.ServletOutputStream;
|
| | |
| | | public class ViewServlet extends DefaultServlet {
|
| | |
|
| | | private static final Logger logger = Logger.getLogger(ViewServlet.class.getName());
|
| | | private static final String HOME_CTX = "/home";
|
| | |
|
| | | /**
|
| | | * Handles the HTTP <code>GET</code> method.
|
| | |
| | | @Override
|
| | | protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
| | | throws ServletException, IOException {
|
| | | /*
|
| | | ServletOutputStream out = response.getOutputStream();
|
| | | out.print("<!DOCTYPE html><html><head><title>Testausgabe</title></head><body>");
|
| | | super.doGet(request, response);
|
| | | out.print("</body></html>"); |
| | | */
|
| | |
|
| | | String contextPath = request.getContextPath();
|
| | | if(HOME_CTX.equals(contextPath)) {
|
| | | String userName = getUserName(request);
|
| | | String requestURLStr = request.getRequestURL().toString();
|
| | | String contextPath = request.getContextPath();
|
| | | |
| | | ServletOutputStream out = response.getOutputStream();
|
| | | out.print("<!DOCTYPE html><html><head><title>Testausgabe</title></head><body>");
|
| | | out.print(getHtml("userName", userName)); |
| | | out.print(getHtml("contextPath", contextPath)); |
| | | out.print(getHtml("requestURL", requestURLStr)); |
| | | out.print(getHtml("urlUser", getUrlUser(out, requestURLStr, contextPath, userName))); |
| | | out.print("</body></html>");
|
| | | 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 String getUrlUser(ServletOutputStream out, String requestUrlStr, String contextPath, String userName) throws IOException {
|
| | | String result = "urlUser nicht ermittelbar";
|
| | | private void seiteAusgeben(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
| | | ServletOutputStream out = response.getOutputStream();
|
| | | printHeader(out);
|
| | | super.doGet(request, response);
|
| | | printFooter(out);
|
| | | }
|
| | | |
| | | private void printHeader(ServletOutputStream out) throws IOException {
|
| | | out.print("<!DOCTYPE html><html><head>");
|
| | | out.print("<link rel=\"stylesheet\" type=\"text/css\" href=\"/jslib/bootstrap/css/bootstrap.min.css\">");
|
| | | out.print("</head><body>");
|
| | | }
|
| | | |
| | | private void printFooter(ServletOutputStream out) throws IOException {
|
| | | out.print("</body></html>");
|
| | | }
|
| | | |
| | | private 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);
|
| | | out.print("<p>start: " + start + "</p>");
|
| | | out.print("<p>userName.length: " + userName.length() + "</p>");
|
| | | out.print("<p>contextPath.length(): " + contextPath.length() + "</p>");
|
| | | out.print("<p>requestUrlStr.length(): " + requestUrlStr.length() + "</p>");
|
| | | start += contextPath.length();
|
| | | start++;
|
| | | out.print("<p>start: " + start + "</p>");
|
| | | int end = start + userName.length();
|
| | | try {
|
| | | result = requestUrlStr.substring(start, end);
|
| | | } catch(Exception ex) {
|
| | | result = ex.getMessage();
|
| | | logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
|
| | | }
|
| | | }
|
| | | return result;
|
| | | }
|
| | |
|
| | | private String getHtml(String label, String theVal) {
|
| | | StringBuffer buf = new StringBuffer();
|
| | | buf.append("<p>");
|
| | | buf.append(label);
|
| | | buf.append(": ");
|
| | | if(theVal == null) {
|
| | | buf.append("null");
|
| | | } else {
|
| | | buf.append(theVal);
|
| | | }
|
| | | buf.append("</p>");
|
| | | return buf.toString();
|
| | | }
|
| | |
|
| | | private String getUserName(HttpServletRequest hr) {
|
| | | String userName = null;
|
| | | Object p = hr.getUserPrincipal();
|
| | |
| | | @Override
|
| | | public String getServletInfo() {
|
| | | return "Short description";
|
| | | }// </editor-fold>
|
| | | }
|
| | |
|
| | | }
|