From 87f8e99e48cc032148f7bb63d0f29c18d04c78a5 Mon Sep 17 00:00:00 2001 From: ulrich <ulrich@uhilger.de> Date: Wed, 10 Dec 2014 06:11:58 +0000 Subject: [PATCH] JSONNICE Wandler hinzugefĆ¼gt --- src/de/uhilger/transit/web/Waechter.java | 172 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 89 insertions(+), 83 deletions(-) diff --git a/src/de/uhilger/transit/web/Waechter.java b/src/de/uhilger/transit/web/Waechter.java index 80e17a9..0ea5351 100644 --- a/src/de/uhilger/transit/web/Waechter.java +++ b/src/de/uhilger/transit/web/Waechter.java @@ -1,21 +1,20 @@ /* - Transit - Remote procedure calls made simple - Copyright (c) 2012 Ulrich Hilger + Transit - Remote procedure calls made simple + Copyright (c) 2012 Ulrich Hilger - 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 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. + 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/>. -*/ - + 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.transit.web; import java.security.*; @@ -34,128 +33,135 @@ import javax.servlet.http.HttpServletResponse; /** - * Ein Filter zur Pruefung von Berechtigungen zum Einsatz in einer - * Java EE konformen Webanwendung. Zum Einbau wird diese Klasse - * im Deployment Desciptor (web.xml) deklariert. - * + * Ein Filter zur Pruefung von Berechtigungen zum Einsatz in einer Java EE + * konformen Webanwendung. Zum Einbau wird diese Klasse im Deployment Desciptor + * (web.xml) deklariert. + * * @author Copyright (c) Ulrich Hilger, http://uhilger.de - * @author Published under the terms and conditions of - * the <a href="http://www.gnu.org/licenses/agpl-3.0" target="_blank">GNU Affero General Public License</a> - * + * @author Published under the terms and conditions of the + * <a href="http://www.gnu.org/licenses/agpl-3.0" target="_blank">GNU Affero + * General Public License</a> + * * @version 1, September 16, 2012 */ public class Waechter implements Filter { - - /** Name, der als Benutzername verwendet wird, wenn kein Benutzer angemeldet ist */ + + /** + * Name, der als Benutzername verwendet wird, wenn kein Benutzer angemeldet + * ist + */ public static final String ANONYMER_NUTZER = "anonymous"; - - /** Das Objekt zur Pruefung von Berechtigungen */ + + /** + * Das Objekt zur Pruefung von Berechtigungen + */ protected RechtePruefer rechtePruefer; - + protected String className; protected String methodName; protected String userName; - + /** - * Pruefen, ob der zur Zeit angemeldete Benutzer eine HTTP-Anfrage - * ausfuehren darf, die einen Methodenaufruf der Klassenbibliothek - * Transit enthaelt. - * - * Anfragen, die berechtigt sind, werden zur Verarbeitung weiter gereicht. - * Ist eine Anfrage nicht berechtigt, wird die Anfrage nicht weiter - * gereicht und eine Servlet Exception erzeugt. - * + * Pruefen, ob der zur Zeit angemeldete Benutzer eine HTTP-Anfrage ausfuehren + * darf, die einen Methodenaufruf der Klassenbibliothek Transit enthaelt. + * + * Anfragen, die berechtigt sind, werden zur Verarbeitung weiter gereicht. Ist + * eine Anfrage nicht berechtigt, wird die Anfrage nicht weiter gereicht und + * eine Servlet Exception erzeugt. + * * @param request die zu pruefende Anfrage * @param response die Antowrt des Servers - * @param chain Filterkette zur Weiterleitung der Anfrage fuer den Fall, dass + * @param chain Filterkette zur Weiterleitung der Anfrage fuer den Fall, dass * der Benutzer berechtigt ist. */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { - + getParameters(request); - - if(rechtePruefer == null) { + + if (rechtePruefer == null) { throw new ServletException("RechtePruefer konnte nicht erzeugt werden."); } else { - if(rechtePruefer.istErlaubt(request, response, className, methodName, userName)) { + if (rechtePruefer.istErlaubt(request, response, className, methodName, userName)) { chain.doFilter(request, response); } else { - throw new ServletException("Der Benutzer " + userName + - " darf die Methode " + className + "." + methodName + " nicht ausfuehren."); + throw new ServletException("Der Benutzer " + userName + + " darf die Methode " + className + "." + methodName + " nicht ausfuehren."); } } } - + protected void getParameters(ServletRequest request) throws ServletException { className = ((HttpServletRequest) request).getParameter("c"); methodName = ((HttpServletRequest) request).getParameter("m"); userName = getUserName((HttpServletRequest) request); - - if(className == null) { + + if (className == null) { throw new ServletException("Parameter c fehlt."); - } else if(methodName == null) { - throw new ServletException("Parameter m fehlt."); - } else if(userName == null) { - throw new ServletException("Name des Benutzers konnte nicht ermittelt werden."); + } else if (methodName == null) { + throw new ServletException("Parameter m fehlt."); + } else if (userName == null) { + throw new ServletException("Name des Benutzers konnte nicht ermittelt werden."); } } - + /** * Den Namen des angemeldeten Benutzers ermitteln. - * - * @param req die Anfrage, deren Benutzer ermittelt werden soll - * @return Name des Benutzers oder <code>anonymous</code>, wenn - * kein Benutzer angemeldet ist + * + * @param req die Anfrage, deren Benutzer ermittelt werden soll + * @return Name des Benutzers oder <code>anonymous</code>, wenn kein Benutzer + * angemeldet ist */ public static String getUserName(HttpServletRequest req) { String userName = null; - Principal p = req.getUserPrincipal(); - if(p != null) { - userName = p.getName(); - } - if(userName == null) { - userName = ANONYMER_NUTZER; - } - return userName; - } - + Principal p = req.getUserPrincipal(); + if (p != null) { + userName = p.getName(); + } + if (userName == null) { + userName = ANONYMER_NUTZER; + } + return userName; + } + /** * Diesen Filter initialisieren - * - * @param config die Konfiguration, die zur Initialisierung - * verwendet werden soll + * + * @param config die Konfiguration, die zur Initialisierung verwendet werden + * soll */ public void init(FilterConfig config) { try { String prueferKlassenName = config.getInitParameter("rechtePruefer"); - if(prueferKlassenName != null) { + if (prueferKlassenName != null) { Class prueferKlasse = Class.forName(prueferKlassenName); - if(prueferKlasse != null) { + if (prueferKlasse != null) { Object p = prueferKlasse.newInstance(); - if(p != null && p instanceof RechtePruefer) { + if (p != null && p instanceof RechtePruefer) { this.rechtePruefer = (RechtePruefer) p; } else { - rechteDbSetzen(config); + //rechteDbSetzen(config); + this.rechtePruefer = new StandardRechtePruefer(); } } else { - rechteDbSetzen(config); + //rechteDbSetzen(config); + this.rechtePruefer = new StandardRechtePruefer(); } } else { - rechteDbSetzen(config); + //rechteDbSetzen(config); + this.rechtePruefer = new StandardRechtePruefer(); } - } catch(Exception e) {} + } catch (Exception e) { + } } - - private void rechteDbSetzen(FilterConfig config) { - this.rechtePruefer = new RechteDb(config.getInitParameter("dataSource")); - } - + + /*private void rechteDbSetzen(FilterConfig config) { + this.rechtePruefer = new RechteDb(config.getInitParameter("dataSource")); + }*/ /** - * Diesen Filter vernichten (vom Filter verwendete Ressourcen - * frei geben usw.) + * Diesen Filter vernichten (vom Filter verwendete Ressourcen frei geben usw.) */ public void destroy() { this.rechtePruefer = null; } - -} \ No newline at end of file + +} -- Gitblit v1.9.3