Mercurial > dive4elements > river
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 :