changeset 4194:17fe00c09b7c

Don't redirect to request uri If a url is requested which isn't the FLYS start page (FLYS.html) the user had been redirected to this page after successfull authentication. This caused wrong redirects after a authentication is expired and if the browser preloads e.g. the CSS file. Therefore allow to set a redirect url in the web.xml config to always redirect the user to the correct page after successfull authentication. Fix for flys/issue970 (Zugangsfehler FLYS 2.9.3)
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 22 Oct 2012 09:51:12 +0200
parents f63b39799d2d
children 93b53eaee401
files flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java flys-client/src/main/java/de/intevation/flys/client/server/LoginServlet.java flys-client/src/main/webapp/WEB-INF/web.xml
diffstat 3 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java	Mon Oct 22 09:02:26 2012 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/GGInAFilter.java	Mon Oct 22 09:51:12 2012 +0200
@@ -32,6 +32,7 @@
 
     private boolean deactivate = false;
     private String authmethod;
+    private String redirecturl;
     private ServletContext sc;
 
     public static final String LOGIN_JSP     = "/login.jsp";
@@ -52,6 +53,7 @@
         this.sc = config.getServletContext();
         logger.debug("GGInAFilter context " + this.sc.getContextPath());
         this.authmethod = sc.getInitParameter("authentication");
+        this.redirecturl = sc.getInitParameter("redirect-url");
         if (deactivate != null && deactivate.equalsIgnoreCase("true")) {
             this.deactivate = true;
         }
@@ -97,7 +99,8 @@
 
         HttpSession session = sreq.getSession();
 
-        String uri = requesturi;
+        String uri = "/" + this.redirecturl;
+
         if (sreq.getQueryString() != null) {
             uri = uri + "?" + sreq.getQueryString();
         }
--- a/flys-client/src/main/java/de/intevation/flys/client/server/LoginServlet.java	Mon Oct 22 09:02:26 2012 +0200
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/LoginServlet.java	Mon Oct 22 09:51:12 2012 +0200
@@ -40,7 +40,9 @@
     private void redirectSuccess(HttpServletResponse resp, String path,
             String uri) throws IOException {
         if (uri == null) {
-            uri = path + "/FLYS.html";
+            String redirecturl = getServletContext().getInitParameter("redirect-url");
+
+            uri = "/" + redirecturl;
         }
         resp.sendRedirect(uri);
     }
--- a/flys-client/src/main/webapp/WEB-INF/web.xml	Mon Oct 22 09:02:26 2012 +0200
+++ b/flys-client/src/main/webapp/WEB-INF/web.xml	Mon Oct 22 09:51:12 2012 +0200
@@ -11,6 +11,12 @@
     </context-param>
 
     <context-param>
+        <!-- URL to be redirected after successfull authentication -->
+        <param-name>redirect-url</param-name>
+        <param-value>FLYS.html</param-value>
+    </context-param>
+
+    <context-param>
         <param-name>authentication</param-name>
         <param-value>GGInA</param-value>
     </context-param>

http://dive4elements.wald.intevation.org