You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by rm...@apache.org on 2012/07/05 20:14:36 UTC

svn commit: r1357781 - in /incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet: DispatcherServlet.java ServletRequestContext.java

Author: rmatthews
Date: Thu Jul  5 18:14:36 2012
New Revision: 1357781

URL: http://svn.apache.org/viewvc?rev=1357781&view=rev
Log:
ISIS-162 - Changed session set up so that session variables are stored from request to request, even when user is not logged in.

Modified:
    incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/DispatcherServlet.java
    incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/ServletRequestContext.java

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/DispatcherServlet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/DispatcherServlet.java?rev=1357781&r1=1357780&r2=1357781&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/DispatcherServlet.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/DispatcherServlet.java Thu Jul  5 18:14:36 2012
@@ -21,20 +21,17 @@ package org.apache.isis.viewer.scimpi.se
 
 import java.io.IOException;
 import java.util.Enumeration;
-import java.util.HashMap;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.log4j.Logger;
 
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.scimpi.dispatcher.Dispatcher;
 import org.apache.isis.viewer.scimpi.dispatcher.UserManager;
 import org.apache.isis.viewer.scimpi.dispatcher.debug.DebugUsers;
+import org.apache.log4j.Logger;
 
 public class DispatcherServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
@@ -57,16 +54,6 @@ public class DispatcherServlet extends H
     private void process(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
         try {
             final ServletRequestContext context = new ServletRequestContext(debugUsers);
-            final HttpSession httpSession = request.getSession(false);
-            // TODO when using version 3.0 of Servlet API use the HttpOnly
-            // setting for improved security
-            if (httpSession != null) {
-                @SuppressWarnings("unchecked")
-                final HashMap<String, Object> data = (HashMap<String, Object>) httpSession.getAttribute("scimpi-context");
-                if (data != null) {
-                    context.setSessionData(data);
-                }
-            }
             context.startRequest(request, response, getServletContext());
             dispatcher.process(context, request.getServletPath());
         } catch (final RuntimeException e) {

Modified: incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/ServletRequestContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/ServletRequestContext.java?rev=1357781&r1=1357780&r2=1357781&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/ServletRequestContext.java (original)
+++ incubator/isis/trunk/framework/viewer/scimpi/scimpi-servlet/src/main/java/org/apache/isis/viewer/scimpi/servlet/ServletRequestContext.java Thu Jul  5 18:14:36 2012
@@ -24,6 +24,7 @@ import java.io.InputStream;
 import java.io.PrintWriter;
 import java.net.MalformedURLException;
 import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.Map;
 
 import javax.servlet.ServletContext;
@@ -151,6 +152,7 @@ public class ServletRequestContext exten
             final String name = (String) parameterNames.nextElement();
             addParameter(name, request.getParameter(name));
         }
+        initSession();
     }
 
     public HttpServletRequest getRequest() {
@@ -221,11 +223,20 @@ public class ServletRequestContext exten
     
     @Override
     public void startHttpSession() {
+        addVariable("_auth_session", getSession(), Scope.SESSION); 
+    }
+
+    private void initSession(){
         final HttpSession httpSession = request.getSession(true);
+        // TODO when using version 3.0 of Servlet API use the HttpOnly setting for improved security
         if (httpSession.getAttribute("scimpi-context") == null) {
             final Map<String, Object> sessionData = getSessionData();
             httpSession.setAttribute("scimpi-context", sessionData);
-            addVariable("_authenticated", false, Scope.SESSION);
+        } else {
+            final HashMap<String, Object> data = (HashMap<String, Object>) httpSession.getAttribute("scimpi-context");
+            if (data != null) {
+                setSessionData(data);
+            }
         }
     }