diff flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java @ 3485:71ba3cf3ec5e

Refactor Authentication to allow to pass the Freatures to the user class The Features class can be used to receive the allowed features for the users roles. flys-client/trunk@5183 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Fri, 10 Aug 2012 07:06:18 +0000
parents 8255247da645
children a4c9296f6efa
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java	Thu Aug 09 08:22:04 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java	Fri Aug 10 07:06:18 2012 +0000
@@ -1,10 +1,12 @@
 package de.intevation.flys.client.server;
 
 import java.io.IOException;
+import java.util.Enumeration;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
+import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -19,6 +21,7 @@
 import de.intevation.flys.client.server.auth.AuthenticationException;
 import de.intevation.flys.client.server.auth.AuthenticationFactory;
 import de.intevation.flys.client.server.auth.User;
+import de.intevation.flys.client.server.features.Features;
 
 
 /** ServletFilter used for GGInA authentification and certain authorisation. */
@@ -29,6 +32,7 @@
 
     private boolean deactivate = false;
     private String authmethod;
+    private ServletContext sc;
 
 
     /**
@@ -41,8 +45,8 @@
     throws ServletException
     {
         String deactivate = config.getInitParameter("deactivate");
-        this.authmethod = config.getServletContext().getInitParameter(
-                "authentication");
+        this.sc = config.getServletContext();
+        this.authmethod = sc.getInitParameter("authentication");
         if (deactivate != null && deactivate.equalsIgnoreCase("true")) {
             this.deactivate = true;
         }
@@ -69,6 +73,9 @@
         HttpServletRequest sreq = (HttpServletRequest) req;
 
         String requesturi = sreq.getRequestURI();
+        for (Enumeration e = req.getAttributeNames() ; e.hasMoreElements() ;) {
+            logger.debug(e.nextElement());
+        }
 
         logger.debug("Request for: " + requesturi);
 
@@ -133,8 +140,9 @@
 
     private Authentication auth(User user, String encoding)
         throws AuthenticationException, IOException {
+        Features features = (Features)sc.getAttribute(Features.CONTEXT_ATTRIBUTE);
         return AuthenticationFactory.getInstance(this.authmethod).auth(
-                user.getName(), user.getPassword(), encoding);
+                user.getName(), user.getPassword(), encoding, features);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org