Author: rdonkin
Date: Tue Jun 19 15:01:37 2007
New Revision: 548863
URL: http://svn.apache.org/viewvc?view=rev&rev=548863
Log:
Decoupled dependency on User from the ImapSession interface.
Added:
james/server/trunk/core-library/src/main/java/org/apache/james/services/User.java
- copied unchanged from r548856,
james/server/trunk/imap-api/src/main/java/org/apache/james/services/User.java
Removed:
james/server/trunk/imap-api/src/main/java/org/apache/james/services/User.java
Modified:
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
Modified:
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
(original)
+++
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
Tue Jun 19 15:01:37 2007
@@ -29,7 +29,6 @@
import org.apache.james.api.imap.ImapSessionState;
import org.apache.james.api.imap.process.ImapSession;
import org.apache.james.api.imap.process.SelectedImapMailbox;
-import org.apache.james.services.User;
import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
@@ -39,7 +38,6 @@
public final class ImapSessionImpl extends AbstractLogEnabled implements
ImapSession, ImapConstants
{
private ImapSessionState state = ImapSessionState.NON_AUTHENTICATED;
- private User user = null;
private SelectedImapMailbox selectedMailbox = null;
private final String clientHostName;
@@ -95,15 +93,9 @@
return clientAddress;
}
- public void authenticated( User user )
+ public void authenticated( )
{
this.state = ImapSessionState.AUTHENTICATED;
- this.user = user;
- }
-
- public User getUser()
- {
- return this.user;
}
public void deselect()
Modified:
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
(original)
+++
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
Tue Jun 19 15:01:37 2007
@@ -22,7 +22,6 @@
import java.util.List;
import org.apache.james.api.imap.ImapSessionState;
-import org.apache.james.services.User;
/**
@@ -74,19 +73,9 @@
ImapSessionState getState();
/**
- * Moves the session into [EMAIL PROTECTED]
ImapSessionState#AUTHENTICATED} state with
- * the supplied user.
- * @param user The user who is authenticated for this session.
+ * Moves the session into [EMAIL PROTECTED]
ImapSessionState#AUTHENTICATED} state.
*/
- void authenticated( User user );
-
- /**
- * Provides the authenticated user for this session, or <code>null</code>
if this
- * session is not in [EMAIL PROTECTED] ImapSessionState#AUTHENTICATED} or
- * [EMAIL PROTECTED] ImapSessionState#SELECTED} state.
- * @return The user authenticated for this session
- */
- User getUser();
+ void authenticated();
/**
* Moves this session into [EMAIL PROTECTED] ImapSessionState#SELECTED}
state and sets the
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
Tue Jun 19 15:01:37 2007
@@ -39,7 +39,7 @@
}
public String buildFullName(final ImapSession session, String mailboxName)
throws MailboxManagerException {
- User user = session.getUser();
+ User user = ImapSessionUtils.getUser(session);
if (!mailboxName.startsWith(NAMESPACE_PREFIX)) {
mailboxName =
mailboxManagerProvider.getPersonalDefaultNamespace(user).getName()+HIERARCHY_DELIMITER+mailboxName;
}
@@ -52,7 +52,7 @@
MailboxManager result = (MailboxManager) session.getAttribute(
ImapSessionUtils.MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY );
if (result == null) {
// TODO: handle null user
- final User user = session.getUser();
+ final User user = ImapSessionUtils.getUser(session);
result = mailboxManagerProvider.getMailboxManagerInstance(user);
result.createInbox(user);
// TODO: reconsider decision not to sunchronise
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
Tue Jun 19 15:01:37 2007
@@ -24,9 +24,12 @@
import org.apache.james.api.imap.process.ImapSession;
import org.apache.james.imap.message.response.base.AbstractImapResponse;
import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.services.User;
public class ImapSessionUtils {
+ public static final String MAILBOX_USER_ATTRIBUTE_SESSION_KEY
+ = "org.apache.james.api.imap.MAILBOX_USER_ATTRIBUTE_SESSION_KEY";
public static final String MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY
= "org.apache.james.api.imap.MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY";
public static final String SELECTED_MAILBOX_ATTRIBUTE_SESSION_KEY
@@ -41,6 +44,15 @@
ImapMailboxSession result
= (ImapMailboxSession)
session.getAttribute(SELECTED_MAILBOX_ATTRIBUTE_SESSION_KEY);
return result;
+ }
+
+ public static User getUser( final ImapSession session ) {
+ final User result = (User)
session.getAttribute(MAILBOX_USER_ATTRIBUTE_SESSION_KEY);
+ return result;
+ }
+
+ public static void setUser( final ImapSession session, final User user) {
+ session.setAttribute(MAILBOX_USER_ATTRIBUTE_SESSION_KEY, user);
}
}
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
Tue Jun 19 15:01:37 2007
@@ -35,6 +35,7 @@
import org.apache.james.mailboxmanager.impl.ListResultImpl;
import org.apache.james.mailboxmanager.manager.MailboxManager;
import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
+import org.apache.james.services.User;
abstract class AbstractListingProcessor extends AbstractMailboxAwareProcessor {
@@ -54,8 +55,9 @@
ListResult[] listResults;
- String personalNamespace = ImapConstants.USER_NAMESPACE +
ImapConstants.HIERARCHY_DELIMITER_CHAR +
- session.getUser().getUserName();
+ final User user = ImapSessionUtils.getUser(session);
+ String personalNamespace = ImapConstants.USER_NAMESPACE +
ImapConstants.HIERARCHY_DELIMITER_CHAR
+ + user.getUserName();
if ( mailboxPattern.length() == 0 ) {
// An empty mailboxPattern signifies a request for the hierarchy
delimiter
Modified:
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
---
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
(original)
+++
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
Tue Jun 19 15:01:37 2007
@@ -31,6 +31,7 @@
import
org.apache.james.imap.message.response.imap4rev1.legacy.CommandFailedResponse;
import org.apache.james.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.processor.base.AuthorizationException;
+import org.apache.james.imapserver.processor.base.ImapSessionUtils;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.services.User;
import org.apache.james.services.UsersRepository;
@@ -67,7 +68,8 @@
final ImapResponseMessage result;
if ( users.test( userid, password ) ) {
User user = users.getUserByName( userid );
- session.authenticated( user );
+ session.authenticated();
+ ImapSessionUtils.setUser( session, user );
result = new CommandCompleteResponse(command, tag);
}
else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]