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