/*
WebBox - Dein Server.
Copyright (C) 2017 Ulrich Hilger, http://uhilger.de
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see
GET
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) {
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;
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}
}