New file |
| | |
| | | /*
|
| | | 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 <http://www.gnu.org/licenses/>.
|
| | | */
|
| | |
|
| | | package de.uhilger.wbx.api;
|
| | |
|
| | | import de.uhilger.transit.web.RequestKontext;
|
| | | import de.uhilger.transit.web.WebKontext;
|
| | | import de.uhilger.wbx.web.Initialiser;
|
| | | import java.io.File;
|
| | | import java.security.Principal;
|
| | | import java.util.logging.Logger;
|
| | | import javax.servlet.ServletContext;
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
|
| | | /**
|
| | | *
|
| | | */
|
| | | public abstract class ApiBase implements WebKontext, RequestKontext {
|
| | |
|
| | | private static final Logger logger = Logger.getLogger(ApiBase.class.getName());
|
| | | |
| | | /** Zeiger zum Servlet-Kontext dieser Anwendung */
|
| | | protected ServletContext ctx;
|
| | | |
| | | /** Zeiger zum Request, der zur Ausfuehrung fuehrte */
|
| | | protected HttpServletRequest request; |
| | | |
| | | |
| | | /**
|
| | | * Das Datenverzeichnis der WebBox ermitteln
|
| | | * @return Ordner $wbx/daten
|
| | | */
|
| | | protected File getFileBase() {
|
| | | File file = null;
|
| | | Object o = getServletContext().getAttribute(Initialiser.FILE_BASE);
|
| | | if(o instanceof String) {
|
| | | String baseStr = (String) o;
|
| | | logger.fine(baseStr);
|
| | | file = new File(baseStr);
|
| | | }
|
| | | return file;
|
| | | }
|
| | | |
| | | /**
|
| | | * Den absoluten Pfad zum Verzeichnis ermitteln das gemaess der |
| | | * Tomcat-Doku als CATALINA_BASE der WebBox gilt
|
| | | * @return absoluter Pfad zu $wbx/sys/base
|
| | | */
|
| | | protected String getCatalinaBase() {
|
| | | String path = getServletContext().getRealPath("/");
|
| | | logger.fine("getRealPath: " + path); // file-cms in webapps
|
| | | File file = new File(path);
|
| | | file = file.getParentFile().getParentFile();
|
| | | return file.getAbsolutePath();
|
| | | }
|
| | | |
| | | /**
|
| | | * Den absoluten Pfad zum Datenverzeichnis der WebBox ermitteln
|
| | | * @return absoluter Pfad zu $wbx/daten
|
| | | */
|
| | | protected String getWbxDataDir() {
|
| | | return getFileBase().getAbsolutePath();
|
| | | }
|
| | | |
| | | /**
|
| | | * Das Verzeichnis ermitteln, in dem die WebBox laeuft
|
| | | * @return der Ordner $wbx
|
| | | */
|
| | | protected File getWbxDir() {
|
| | | String path = getServletContext().getRealPath("/");
|
| | | logger.fine("getRealPath: " + path);
|
| | | File file = new File(path);
|
| | | file = file.getParentFile().getParentFile().getParentFile().getParentFile(); |
| | | logger.fine("WebBox: " + file.getAbsolutePath());
|
| | | return file;
|
| | | }
|
| | | |
| | | /**
|
| | | * den Namen des angemeldeten Benutzers ermitteln
|
| | | * @return Name des angemeldeten Benutzers oder null, wenn keiner angemeldet ist
|
| | | */
|
| | | protected String getUserName() {
|
| | | String userName = null;
|
| | | Object p = getRequest().getUserPrincipal();
|
| | | if(p instanceof Principal) {
|
| | | userName = ((Principal) p).getName();
|
| | | }
|
| | | return userName;
|
| | | } |
| | |
|
| | | /* ------------- Implementierung WebKontext ------------- */
|
| | |
|
| | | @Override
|
| | | public ServletContext getServletContext() {
|
| | | return ctx;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void setServletContext(ServletContext servletContext) {
|
| | | this.ctx = servletContext;
|
| | | }
|
| | | |
| | | /* ------------- Implementierung RequestKontext ------------- */
|
| | |
|
| | | @Override
|
| | | public HttpServletRequest getRequest() {
|
| | | return request;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void setRequest(HttpServletRequest r) {
|
| | | this.request = r;
|
| | | }
|
| | | |
| | | |
| | | |
| | | }
|