| | |
| | | private static final String[] specialChars = {new String("\u00c4"), new String("\u00d6"), |
| | | new String("\u00dc"), new String("\u00e4"), new String("\u00f6"), new String("\u00fc"), new String("\u00df")}; |
| | | |
| | | private String klassen; |
| | | public static final String KLASSEN_TRENNER = ";"; |
| | | //private String klassen; |
| | | private String[] klassen; |
| | | |
| | | public void init(ServletConfig servletConfig) throws ServletException{ |
| | | this.klassen = servletConfig.getInitParameter("klassen"); |
| | | this.klassen = servletConfig.getInitParameter("klassen").split(KLASSEN_TRENNER); |
| | | super.init(servletConfig); |
| | | } |
| | | |
| | |
| | | String[] elemente = pathInfo.split("/"); |
| | | String klassenName = elemente[1]; |
| | | StringBuffer buf = new StringBuffer(); |
| | | if(this.klassen.contains(klassenName)) { |
| | | if(istErlaubt(klassenName)) { |
| | | //if(this.klassen.contains(klassenName)) { |
| | | //if(this.klassen.matches(klassenName)) { |
| | | String methodenName = elemente[2]; |
| | | String formatName = elemente[3]; |
| | | List parameterListe = new ArrayList(); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Hier wird geprueft, ob der Name einer Klasse der Liste der erlaubten |
| | | * Klassen bzw. Packages entspricht. Im Deployment Descriptor wird ein |
| | | * Ausdruck wie z.B. |
| | | * |
| | | * de.uhilger.test.web;de.uhilger.test.api;de.uhilger.test.db.KlassenName |
| | | * |
| | | * erwartet. Diese Methode spaltet diesen Ausdruck an den ';' auf und prueft |
| | | * fuer jeden Ausdruck, ob der KlassenName mit diesem Ausdruck beginnt. |
| | | * Beginnt der Klassenname mit einem der Ausdruecke, wird der Zugriff erlaubt |
| | | * |
| | | * @param klassenName Name der Klasse, fuer die der Zugriff geprueft |
| | | * werden soll |
| | | * @return true, wenn die Klasse laut dem Eintrag im Deployment Desccriptor |
| | | * aufgerufen werden darf, false wenn nicht |
| | | */ |
| | | private boolean istErlaubt(String klassenName) { |
| | | boolean erlaubt = false; |
| | | for(int i = 0; i < klassen.length && !erlaubt; i++) { |
| | | erlaubt = klassenName.startsWith(klassen[i]); |
| | | } |
| | | return erlaubt; |
| | | } |
| | | |
| | | public String escapeHtml(String text) { |
| | | text = text.replace(specialChars[0], "Ä"); |