You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2010/02/09 15:18:38 UTC

svn commit: r908043 - in /james/hupa/trunk: server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java shared/src/main/java/org/apache/hupa/shared/SConsts.java

Author: manolo
Date: Tue Feb  9 14:18:37 2010
New Revision: 908043

URL: http://svn.apache.org/viewvc?rev=908043&view=rev
Log:
clean session objects at logout

Modified:
    james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java
    james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java
    james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/SConsts.java

Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java?rev=908043&r1=908042&r2=908043&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java Tue Feb  9 14:18:37 2010
@@ -19,7 +19,8 @@
 
 package org.apache.hupa.server.handler;
 
-import javax.servlet.http.HttpSession;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
 
 import net.customware.gwt.dispatch.server.ActionHandler;
 import net.customware.gwt.dispatch.server.ExecutionContext;
@@ -27,13 +28,15 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.SConsts;
 import org.apache.hupa.shared.data.Settings;
 import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.rpc.LoginUser;
 import org.apache.hupa.shared.rpc.LoginUserResult;
 
-import com.google.inject.Inject;
-import com.google.inject.Provider;
+import java.util.Enumeration;
+
+import javax.servlet.http.HttpSession;
 
 /**
  * Handler for login a user via username and password
@@ -59,8 +62,10 @@
      * (non-Javadoc)
      * @see net.customware.gwt.dispatch.server.ActionHandler#execute(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.server.ExecutionContext)
      */
-    public LoginUserResult execute(LoginUser action, ExecutionContext context)
-            throws ActionException {
+    public LoginUserResult execute(LoginUser action, ExecutionContext context) throws ActionException {
+        HttpSession session = sessionProvider.get();
+        cleanSessionAttributes(session);
+        
         String username = action.getUserName();
         String password = action.getPassword();
         try {
@@ -75,15 +80,15 @@
             
             user.setAuthenticated(true);
             user.setSettings(settingsProvider.get());
+            
             // store the session id for later usage
-            HttpSession session = sessionProvider.get();
-            session.setAttribute("user", user);
+            session.setAttribute(SConsts.USER_SESS_ATTR, user);
             
-            logger.debug("Logged user: " + action);
+            logger.debug("Logged user: " + username);
             return new LoginUserResult(user);
 
         } catch (Exception e) {
-            logger.error("Unable to authenticate user: " + action, e);
+            logger.error("Unable to authenticate user: " + username, e);
             throw new ActionException(e);
         }
     }
@@ -104,4 +109,16 @@
     public Class<LoginUser> getActionType() {
         return LoginUser.class;
     }
+    
+    /**
+     * Remove session attributes, it has to be done in the login and logout actions
+     * @param session
+     */
+    public static void cleanSessionAttributes(HttpSession session) {
+        @SuppressWarnings("unchecked")
+        Enumeration en = session.getAttributeNames();
+        while (en.hasMoreElements()) {
+            session.removeAttribute(en.nextElement().toString());
+        }
+    }
 }

Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java?rev=908043&r1=908042&r2=908043&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java Tue Feb  9 14:18:37 2010
@@ -59,8 +59,8 @@
         // delete cached store
         cache.delete(user);
         
-        // remove user attribute from session
-        sessionProvider.get().removeAttribute("user");
+        // remove user attributes from session
+        LoginUserHandler.cleanSessionAttributes(sessionProvider.get());
         
         return new LogoutUserResult(user);
     }

Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/SConsts.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/SConsts.java?rev=908043&r1=908042&r2=908043&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/SConsts.java (original)
+++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/SConsts.java Tue Feb  9 14:18:37 2010
@@ -11,5 +11,9 @@
     public static final String PARAM_NAME = "name";
     public static final String PARAM_FOLDER = "folder";
     public static final String PARAM_UID = "uid";
+    
+    public static final String USER_SESS_ATTR = "user";
+    public static final String CONTACTS_SESS_ATTR = "contacts";
+    
 
 }
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org