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 2014/03/15 11:36:26 UTC
svn commit: r1577826 - in /james/hupa/trunk:
server/src/main/java/org/apache/hupa/server/ioc/
server/src/main/java/org/apache/hupa/server/preferences/
server/src/main/java/org/apache/hupa/server/servlet/
server/src/main/java/org/apache/hupa/server/util...
Author: manolo
Date: Sat Mar 15 10:36:25 2014
New Revision: 1577826
URL: http://svn.apache.org/r1577826
Log:
Do not remove non-hupa session attributes, so as hupa server can be included in other backends, and some re-factoring to avoid repeated code
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/ioc/GuiceServerModule.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/MessageUtils.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.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/ioc/GuiceServerModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/ioc/GuiceServerModule.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/ioc/GuiceServerModule.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/ioc/GuiceServerModule.java Sat Mar 15 10:36:25 2014
@@ -127,87 +127,86 @@ import com.google.web.bindery.requestfac
*/
public class GuiceServerModule extends AbstractModule {
- Properties properties;
+ Properties properties;
- public GuiceServerModule(Properties properties) {
- this.properties = properties;
- }
-
- @Override
- protected void configure() {
- System.err.println("GuiceServerModule configuring beans.");
-
- try {
- // Bind addresses and ports for imap and smtp
- Names.bindProperties(binder(), properties);
- } catch (Exception e) {
- throw new RuntimeException("Unable to to configure hupa server,"
- + "\nmake sure that you have a valid /etc/default/hupa file"
- + "\nor the web container has been started with the appropriate parameter:"
- + " -Dhupa.config.file=your_hupa_properties_file", e);
- }
- bind(ExceptionHandler.class).to(DefaultExceptionHandler.class);
- bind(ServiceLayerDecorator.class).to(IocRfServiceDecorator.class);
- bind(IocRfServiceLocator.class);
-
- bind(MailHeader.class).to(MailHeaderImpl.class);
-
- bind(User.class).to(UserImpl.class);
- bind(Settings.class).toProvider(DefaultUserSettingsProvider.class);
- bind(ImapFolder.class).to(ImapFolderImpl.class);
- bind(Tag.class).to(TagImpl.class);
- bind(MessageDetails.class).to(MessageDetailsImpl.class);
- bind(MessageAttachment.class).to(MessageAttachmentImpl.class);
- bind(SmtpMessage.class).to(SmtpMessageImpl.class);
-
- bind(GenericResult.class).to(GenericResultImpl.class);
- bind(FetchMessagesAction.class).to(FetchMessagesActionImpl.class);
- bind(FetchMessagesResult.class).to(FetchMessagesResultImpl.class);
- bind(CreateFolderAction.class).to(CreateFolderActionImpl.class);
- bind(DeleteFolderAction.class).to(DeleteFolderActionImpl.class);
- bind(RenameFolderAction.class).to(RenameFolderActionImpl.class);
- bind(DeleteMessageAllAction.class).to(DeleteMessageAllActionImpl.class);
- bind(DeleteMessageByUidAction.class).to(DeleteMessageByUidActionImpl.class);
- bind(GetMessageDetailsAction.class).to(GetMessageDetailsActionImpl.class);
- bind(GetMessageDetailsResult.class).to(GetMessageDetailsResultImpl.class);
- bind(SendMessageAction.class).to(SendMessageActionImpl.class);
- bind(SendForwardMessageAction.class).to(SendForwardMessageActionImpl.class);
- bind(SendReplyMessageAction.class).to(SendReplyMessageActionImpl.class);
- bind(GetMessageRawAction.class).to(GetMessageRawActionImpl.class);
- bind(GetMessageRawResult.class).to(GetMessageRawResultImpl.class);
- bind(LogoutUserAction.class).to(LogoutUserActionImpl.class);
- bind(MoveMessageAction.class).to(MoveMessageActionImpl.class);
- bind(SetFlagAction.class).to(SetFlagActionImpl.class);
-
+ public GuiceServerModule(Properties properties) {
+ this.properties = properties;
+ }
+
+ @Override
+ protected void configure() {
+
+ try {
+ // Bind addresses and ports for imap and smtp
+ Names.bindProperties(binder(), properties);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to to configure hupa server,"
+ + "\nmake sure that you have a valid /etc/default/hupa file"
+ + "\nor the web container has been started with the appropriate parameter:"
+ + " -Dhupa.config.file=your_hupa_properties_file", e);
+ }
+ bind(ExceptionHandler.class).to(DefaultExceptionHandler.class);
+ bind(ServiceLayerDecorator.class).to(IocRfServiceDecorator.class);
+ bind(IocRfServiceLocator.class);
+
+ bind(MailHeader.class).to(MailHeaderImpl.class);
+
+ bind(User.class).to(UserImpl.class);
+ bind(Settings.class).toProvider(DefaultUserSettingsProvider.class);
+ bind(ImapFolder.class).to(ImapFolderImpl.class);
+ bind(Tag.class).to(TagImpl.class);
+ bind(MessageDetails.class).to(MessageDetailsImpl.class);
+ bind(MessageAttachment.class).to(MessageAttachmentImpl.class);
+ bind(SmtpMessage.class).to(SmtpMessageImpl.class);
+
+ bind(GenericResult.class).to(GenericResultImpl.class);
+ bind(FetchMessagesAction.class).to(FetchMessagesActionImpl.class);
+ bind(FetchMessagesResult.class).to(FetchMessagesResultImpl.class);
+ bind(CreateFolderAction.class).to(CreateFolderActionImpl.class);
+ bind(DeleteFolderAction.class).to(DeleteFolderActionImpl.class);
+ bind(RenameFolderAction.class).to(RenameFolderActionImpl.class);
+ bind(DeleteMessageAllAction.class).to(DeleteMessageAllActionImpl.class);
+ bind(DeleteMessageByUidAction.class).to(DeleteMessageByUidActionImpl.class);
+ bind(GetMessageDetailsAction.class).to(GetMessageDetailsActionImpl.class);
+ bind(GetMessageDetailsResult.class).to(GetMessageDetailsResultImpl.class);
+ bind(SendMessageAction.class).to(SendMessageActionImpl.class);
+ bind(SendForwardMessageAction.class).to(SendForwardMessageActionImpl.class);
+ bind(SendReplyMessageAction.class).to(SendReplyMessageActionImpl.class);
+ bind(GetMessageRawAction.class).to(GetMessageRawActionImpl.class);
+ bind(GetMessageRawResult.class).to(GetMessageRawResultImpl.class);
+ bind(LogoutUserAction.class).to(LogoutUserActionImpl.class);
+ bind(MoveMessageAction.class).to(MoveMessageActionImpl.class);
+ bind(SetFlagAction.class).to(SetFlagActionImpl.class);
+
bind(FetchMessagesService.class).to(FetchMessagesServiceImpl.class);
- bind(SendMessageService.class).to(SendMessageBaseServiceImpl.class);
- bind(SendForwardMessageService.class).to(SendForwardMessageServiceImpl.class);
- bind(SendReplyMessageService.class).to(SendReplyMessageServiceImpl.class);
+ bind(SendMessageService.class).to(SendMessageBaseServiceImpl.class);
+ bind(SendForwardMessageService.class).to(SendForwardMessageServiceImpl.class);
+ bind(SendReplyMessageService.class).to(SendReplyMessageServiceImpl.class);
bind(GetMessageDetailsService.class).to(GetMessageDetailsServiceImpl.class);
-
- bind(CheckSessionService.class).to(CheckSessionServiceImpl.class);
- bind(LoginUserService.class).to(LoginUserServiceImpl.class);
- bind(ImapFolderService.class).to(ImapFolderServiceImpl.class);
- bind(FetchFoldersService.class).to(FetchFoldersServiceImpl.class);
- bind(CreateFolderService.class).to(CreateFolderServiceImpl.class);
- bind(DeleteFolderService.class).to(DeleteFolderServiceImpl.class);
- bind(RenameFolderService.class).to(RenameFolderServiceImpl.class);
- bind(DeleteMessageAllService.class).to(DeleteMessageAllServiceImpl.class);
- bind(DeleteMessageByUidService.class).to(DeleteMessageByUidServiceImpl.class);
- bind(GetMessageRawService.class).to(GetMessageRawServiceImpl.class);
- bind(LogoutUserService.class).to(LogoutUserServiceImpl.class);
- bind(MoveMessageService.class).to(MoveMessageServiceImpl.class);
- bind(SetFlagService.class).to(SetFlagServiceImpl.class);
-
- bind(IMAPStoreCache.class).to(getIMAPStoreCacheClass()).in(Singleton.class);
+
+ bind(CheckSessionService.class).to(CheckSessionServiceImpl.class);
+ bind(LoginUserService.class).to(LoginUserServiceImpl.class);
+ bind(ImapFolderService.class).to(ImapFolderServiceImpl.class);
+ bind(FetchFoldersService.class).to(FetchFoldersServiceImpl.class);
+ bind(CreateFolderService.class).to(CreateFolderServiceImpl.class);
+ bind(DeleteFolderService.class).to(DeleteFolderServiceImpl.class);
+ bind(RenameFolderService.class).to(RenameFolderServiceImpl.class);
+ bind(DeleteMessageAllService.class).to(DeleteMessageAllServiceImpl.class);
+ bind(DeleteMessageByUidService.class).to(DeleteMessageByUidServiceImpl.class);
+ bind(GetMessageRawService.class).to(GetMessageRawServiceImpl.class);
+ bind(LogoutUserService.class).to(LogoutUserServiceImpl.class);
+ bind(MoveMessageService.class).to(MoveMessageServiceImpl.class);
+ bind(SetFlagService.class).to(SetFlagServiceImpl.class);
+
+ bind(IMAPStoreCache.class).to(getIMAPStoreCacheClass()).in(Singleton.class);
- bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
+ bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
bind(UserPreferencesStorage.class).to(InSessionUserPreferencesStorage.class);
- bind(Properties.class).toInstance(properties);
- }
+ bind(Properties.class).toInstance(properties);
+ }
- protected Class<? extends IMAPStoreCache> getIMAPStoreCacheClass() {
- return InMemoryIMAPStoreCache.class;
- }
+ protected Class<? extends IMAPStoreCache> getIMAPStoreCacheClass() {
+ return InMemoryIMAPStoreCache.class;
+ }
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java Sat Mar 15 10:36:25 2014
@@ -48,6 +48,7 @@ import org.apache.commons.io.output.Byte
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
import org.apache.hupa.server.utils.MessageUtils;
+import org.apache.hupa.shared.SConsts;
import org.apache.hupa.shared.domain.User;
import org.apache.hupa.shared.rpc.ContactsResult.Contact;
@@ -62,7 +63,7 @@ import com.sun.mail.imap.IMAPStore;
* @author manolo
*/
public class InImapUserPreferencesStorage extends UserPreferencesStorage {
-
+
// User preferences are saved in IMAP but there is a delay between a new
// contact is added an the save action. It saves number of operations in
@@ -74,8 +75,6 @@ public class InImapUserPreferencesStorag
private static final String HUPA_DATA_MIME_TYPE = "application/hupa-data";
- // TODO: centralize this constant
- protected static final String USER_ATTR = "user";
private static Hashtable<User, Thread> threads = new Hashtable<User, Thread>();
@@ -207,7 +206,7 @@ public class InImapUserPreferencesStorag
for (Contact contact : contacts) {
if (!contactsHash.containsKey(contact.toKey())) {
contactsHash.put(contact.toKey(), contact);
- saveContactsAsync((User) sessionProvider.get().getAttribute(USER_ATTR));
+ saveContactsAsync((User) sessionProvider.get().getAttribute(SConsts.USER_SESS_ATTR));
}
}
}
@@ -228,14 +227,14 @@ public class InImapUserPreferencesStorag
@SuppressWarnings("unchecked")
private HashMap<String, Contact> getContactsHash() {
HttpSession session = sessionProvider.get();
- HashMap<String, Contact> contactHash = (HashMap<String, Contact>) session.getAttribute(CONTACTS_ATTR);
+ HashMap<String, Contact> contactHash = (HashMap<String, Contact>) session.getAttribute(SConsts.CONTACTS_SESS_ATTR);
if (contactHash == null) {
try {
- User user = (User) sessionProvider.get().getAttribute("user");
+ User user = (User) sessionProvider.get().getAttribute(SConsts.USER_SESS_ATTR);
IMAPStore iStore = cache.get(user);
Object o = readUserPreferencesFromIMAP(logger, user, iStore, user.getSettings().getDraftsFolderName(), MAGIC_SUBJECT_CONTACTS);
contactHash = o != null ? (HashMap<String, Contact>) o : new HashMap<String, Contact>();
- session.setAttribute(CONTACTS_ATTR, contactHash);
+ session.setAttribute(SConsts.CONTACTS_SESS_ATTR, contactHash);
} catch (Exception e) {
e.printStackTrace();
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/InSessionUserPreferencesStorage.java Sat Mar 15 10:36:25 2014
@@ -24,6 +24,7 @@ import com.google.inject.Provider;
import org.apache.commons.logging.Log;
import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.SConsts;
import org.apache.hupa.shared.rpc.ContactsResult.Contact;
import java.util.HashMap;
@@ -46,10 +47,10 @@ public class InSessionUserPreferencesSto
HttpSession session = sessionProvider.get();
@SuppressWarnings("unchecked")
- HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute(CONTACTS_ATTR);
+ HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute(SConsts.CONTACTS_SESS_ATTR);
if (sessionContacts==null) {
sessionContacts=new HashMap<String, Contact>();
- session.setAttribute(CONTACTS_ATTR, sessionContacts);
+ session.setAttribute(SConsts.CONTACTS_SESS_ATTR, sessionContacts);
}
for(Contact contact: contacts) {
@@ -63,7 +64,7 @@ public class InSessionUserPreferencesSto
HttpSession session = sessionProvider.get();
@SuppressWarnings("unchecked")
- HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute(CONTACTS_ATTR);
+ HashMap<String, Contact> sessionContacts = (HashMap<String, Contact>)session.getAttribute(SConsts.CONTACTS_SESS_ATTR);
return sessionContacts == null ? new Contact[]{} : sessionContacts.values().toArray(new Contact[sessionContacts.size()]);
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java Sat Mar 15 10:36:25 2014
@@ -72,7 +72,7 @@ public class DownloadAttachmentServlet e
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
- User user = (User) request.getSession().getAttribute("user");
+ User user = (User) request.getSession().getAttribute(SConsts.USER_SESS_ATTR);
if (user == null)
throw new ServletException("Invalid session");
@@ -82,8 +82,8 @@ public class DownloadAttachmentServlet e
String mode = request.getParameter(SConsts.PARAM_MODE);
boolean inline = "inline".equals(mode);
if (!inline) {
- response.setHeader("Content-disposition", "attachment; filename="
- + attachmentName + "");
+ response.setHeader("Content-disposition", "attachment; filename="
+ + attachmentName + "");
}
InputStream in = null;
OutputStream out = response.getOutputStream();
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java Sat Mar 15 10:36:25 2014
@@ -60,7 +60,7 @@ public class MessageSourceServlet extend
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- User user = (User) request.getSession().getAttribute("user");
+ User user = (User) request.getSession().getAttribute(SConsts.USER_SESS_ATTR);
String message_uuid = request.getParameter(SConsts.PARAM_UID);
String folderName = request.getParameter(SConsts.PARAM_FOLDER);
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java Sat Mar 15 10:36:25 2014
@@ -28,7 +28,7 @@ import javax.servlet.http.HttpServletReq
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.logging.Log;
-import org.apache.hupa.server.FileItemRegistry;
+import org.apache.hupa.server.utils.SessionUtils;
import com.google.inject.Inject;
@@ -51,22 +51,13 @@ public class UploadAttachmentServlet ext
this.logger = logger;
}
- private FileItemRegistry getSessionRegistry(HttpServletRequest request) {
- FileItemRegistry registry = (FileItemRegistry)request.getSession().getAttribute("registry");
- if (registry == null) {
- registry = new FileItemRegistry(logger);
- request.getSession().setAttribute("registry", registry);
- }
- return registry;
- }
-
@Override
public String executeAction(HttpServletRequest request, List<FileItem> sessionFiles) throws UploadActionException {
- logger.info("Executing Action, files in session: " + sessionFiles.size() + " previous files in registry: " + getSessionRegistry(request).size());
+ logger.info("Executing Action, files in session: " + sessionFiles.size() + " previous files in registry: " + SessionUtils.getSessionRegistry(logger, request.getSession()).size());
// save file items in the user session's registry
for(FileItem item: sessionFiles)
- getSessionRegistry(request).add(item);
+ SessionUtils.getSessionRegistry(logger, request.getSession()).add(item);
// remove items from session but not remove the data from disk or memory
@@ -76,6 +67,6 @@ public class UploadAttachmentServlet ext
@Override
public void removeItem(HttpServletRequest request, FileItem item) throws UploadActionException {
- getSessionRegistry(request).remove(item);
+ SessionUtils.getSessionRegistry(logger, request.getSession()).remove(item);
}
}
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/MessageUtils.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/MessageUtils.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/MessageUtils.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/MessageUtils.java Sat Mar 15 10:36:25 2014
@@ -252,12 +252,13 @@ public class MessageUtils {
if (contentId != null) {
for (String id: contentId) {
id = id.replaceAll("^.*<(.+)>.*$", "$1");
+ System.out.println(attachmentName + " " + id);
if (attachmentName.equals(id))
return bodyPart;
}
}
- if (fileName != null){
- if (attachmentName.equalsIgnoreCase(MimeUtility.decodeText(fileName)))
+ if (fileName != null) {
+ if (cleanName(attachmentName).equalsIgnoreCase(cleanName(MimeUtility.decodeText(fileName))))
return bodyPart;
}
}
@@ -267,6 +268,10 @@ public class MessageUtils {
}
return null;
}
+
+ private static String cleanName(String s) {
+ return s.replaceAll("[^\\w .+-]", "");
+ }
/**
* Convert a FileItem to a BodyPart
Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java?rev=1577826&r1=1577825&r2=1577826&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/utils/SessionUtils.java Sat Mar 15 10:36:25 2014
@@ -20,41 +20,47 @@
package org.apache.hupa.server.utils;
-import org.apache.commons.logging.Log;
-import org.apache.hupa.server.FileItemRegistry;
-
import java.util.ArrayList;
import java.util.Enumeration;
import javax.servlet.http.HttpSession;
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.FileItemRegistry;
+import org.apache.hupa.shared.SConsts;
+
/**
* Utility methods for manage user's session objects
*/
public class SessionUtils {
public static FileItemRegistry getSessionRegistry(Log logger, HttpSession session) {
- FileItemRegistry registry = (FileItemRegistry)session.getAttribute("registry");
+ FileItemRegistry registry = (FileItemRegistry)session.getAttribute(SConsts.REG_SESS_ATTR);
if (registry == null) {
registry = new FileItemRegistry(logger);
- session.setAttribute("registry", registry);
+ session.setAttribute(SConsts.REG_SESS_ATTR, registry);
}
return registry;
}
-
+
/**
* Remove session attributes, it has to be done in the login and logout actions
* @param session
*/
public static void cleanSessionAttributes(HttpSession session) {
- @SuppressWarnings("rawtypes")
- Enumeration en = session.getAttributeNames();
- ArrayList<String> toRemove = new ArrayList<String>();
- while (en.hasMoreElements()) {
- toRemove.add(en.nextElement().toString());
- }
- for (String attr: toRemove) {
- session.removeAttribute(attr);
+ if (session != null) {
+ @SuppressWarnings("rawtypes")
+ Enumeration en = session.getAttributeNames();
+ ArrayList<String> toRemove = new ArrayList<String>();
+ while (en.hasMoreElements()) {
+ String s = en.nextElement().toString();
+ if (s.startsWith("hupa")) {
+ toRemove.add(s);
+ }
+ }
+ for (String attr: toRemove) {
+ session.removeAttribute(attr);
+ }
}
}
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=1577826&r1=1577825&r2=1577826&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 Sat Mar 15 10:36:25 2014
@@ -31,8 +31,9 @@ public class SConsts {
public static final String PARAM_UID = "uid";
public static final String PARAM_MODE = "mode";
- public static final String USER_SESS_ATTR = "user";
- public static final String CONTACTS_SESS_ATTR = "contacts";
+ public static final String USER_SESS_ATTR = "hupa.user";
+ public static final String CONTACTS_SESS_ATTR = "hupa.contacts";
+ public static final String REG_SESS_ATTR = "hupa.registry";
public static final String HEADER_IN_REPLY_TO = "In-Reply-To";
public static final String HEADER_REFERENCES = "References";
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org