JAMES-1930 MPT test for delegation
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3f26ba0c Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3f26ba0c Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3f26ba0c Branch: refs/heads/master Commit: 3f26ba0cdacef98e41c4ea96014f8eadfb0b4f97 Parents: 157be0d Author: Benoit Tellier <[email protected]> Authored: Fri Feb 10 11:49:13 2017 +0700 Committer: Antoine Duprat <[email protected]> Committed: Tue Feb 14 11:29:30 2017 +0100 ---------------------------------------------------------------------- .../cassandra/host/CassandraHostSystem.java | 13 +---- mpt/impl/imap-mailbox/core/pom.xml | 8 +++ .../james/mpt/host/JamesImapHostSystem.java | 44 +++++++++++++-- .../imapmailbox/suite/AuthenticatePlain.java | 12 +++- .../james/imap/scripts/AuthenticatePlain.test | 59 ++++++++++++++++---- .../host/ElasticSearchHostSystem.java | 10 +--- .../imapmailbox/hbase/host/HBaseHostSystem.java | 13 +---- .../inmemory/InMemoryMailboxTest.java | 2 + .../InMemoryEventAsynchronousHostSystem.java | 11 +--- .../inmemory/host/InMemoryHostSystem.java | 11 +--- .../mpt/imapmailbox/jcr/host/JCRHostSystem.java | 16 +----- .../mpt/imapmailbox/jpa/host/JPAHostSystem.java | 15 +---- .../host/LuceneSearchHostSystem.java | 14 +---- .../maildir/host/MaildirHostSystem.java | 17 ++---- mpt/pom.xml | 5 ++ .../user/memory/MemoryUsersRepository.java | 4 ++ 16 files changed, 133 insertions(+), 121 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java index e466f2d..3f9750b 100644 --- a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java +++ b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java @@ -51,8 +51,6 @@ import org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager; import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.quota.QuotaRootResolver; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreSubscriptionManager; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -73,8 +71,6 @@ public class CassandraHostSystem extends JamesImapHostSystem { Feature.ANNOTATION_SUPPORT); private final CassandraMailboxManager mailboxManager; - private final FakeAuthenticator userManager; - private final FakeAuthorizator authorizator; private final CassandraCluster cassandraClusterSingleton; public CassandraHostSystem() throws Exception { @@ -91,8 +87,6 @@ public class CassandraHostSystem extends JamesImapHostSystem { new CassandraAttachmentModule(), new CassandraAnnotationModule()); cassandraClusterSingleton = CassandraCluster.create(mailboxModule); - userManager = new FakeAuthenticator(); - authorizator = FakeAuthorizator.defaultReject(); com.datastax.driver.core.Session session = cassandraClusterSingleton.getConf(); CassandraModSeqProvider modSeqProvider = new CassandraModSeqProvider(session); CassandraUidProvider uidProvider = new CassandraUidProvider(session); @@ -107,7 +101,7 @@ public class CassandraHostSystem extends JamesImapHostSystem { CassandraMailboxSessionMapperFactory mapperFactory = new CassandraMailboxSessionMapperFactory(uidProvider, modSeqProvider, session, typesProvider, messageDAO, messageIdDAO, imapUidDAO, mailboxCounterDAO, mailboxRecentsDAO); - mailboxManager = new CassandraMailboxManager(mapperFactory, userManager, authorizator, new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory); + mailboxManager = new CassandraMailboxManager(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory); QuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(mapperFactory); CassandraPerUserMaxQuotaManager perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager(session); @@ -143,11 +137,6 @@ public class CassandraHostSystem extends JamesImapHostSystem { cassandraClusterSingleton.clearAllTables(); } - public boolean addUser(String user, String password) { - userManager.addUser(user, password); - return true; - } - @Override protected void finalize() throws Throwable { super.finalize(); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/core/pom.xml ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/pom.xml b/mpt/impl/imap-mailbox/core/pom.xml index a13926d..f2435b0 100644 --- a/mpt/impl/imap-mailbox/core/pom.xml +++ b/mpt/impl/imap-mailbox/core/pom.xml @@ -58,6 +58,14 @@ <artifactId>apache-james-mpt-onami-test</artifactId> </dependency> <dependency> + <groupId>org.apache.james</groupId> + <artifactId>james-server-data-memory</artifactId> + </dependency> + <dependency> + <groupId>org.apache.james</groupId> + <artifactId>james-server-mailbox-adapter</artifactId> + </dependency> + <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java index e2be945..149209a 100644 --- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java +++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java @@ -19,35 +19,54 @@ package org.apache.james.mpt.host; +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.configuration.plist.PropertyListConfiguration; +import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator; +import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.decode.ImapDecoder; import org.apache.james.imap.decode.main.ImapRequestStreamHandler; import org.apache.james.imap.encode.ImapEncoder; import org.apache.james.mailbox.MailboxSession.User; import org.apache.james.mailbox.model.MailboxPath; +import org.apache.james.mailbox.store.Authenticator; +import org.apache.james.mailbox.store.Authorizator; import org.apache.james.mpt.api.Continuation; import org.apache.james.mpt.api.ImapHostSystem; import org.apache.james.mpt.helper.ByteBufferInputStream; import org.apache.james.mpt.helper.ByteBufferOutputStream; import org.apache.james.mpt.session.ImapSessionImpl; +import org.apache.james.user.memory.MemoryUsersRepository; import org.slf4j.LoggerFactory; -import java.util.HashSet; -import java.util.Set; +import com.google.common.base.Throwables; public abstract class JamesImapHostSystem implements ImapHostSystem { - private ImapDecoder decoder; + private final MemoryUsersRepository memoryUsersRepository; + private final Set<User> users; + protected final Authorizator authorizator; + protected final Authenticator authenticator; + private ImapDecoder decoder; private ImapEncoder encoder; - private ImapProcessor processor; - private final Set<User> users; - public JamesImapHostSystem() { super(); users = new HashSet<User>(); + memoryUsersRepository = MemoryUsersRepository.withoutVirtualHosting(); + try { + memoryUsersRepository.configure(userRepositoryConfiguration()); + } catch (ConfigurationException e) { + throw Throwables.propagate(e); + } + authenticator = new UserRepositoryAuthenticator(memoryUsersRepository); + authorizator = new UserRepositoryAuthorizator(memoryUsersRepository); } public void configure(ImapDecoder decoder, ImapEncoder encoder, @@ -57,6 +76,12 @@ public abstract class JamesImapHostSystem implements ImapHostSystem { this.processor = processor; } + @Override + public boolean addUser(String user, String password) throws Exception { + memoryUsersRepository.addUser(user, password); + return true; + } + public Session newSession(Continuation continuation) throws Exception { return new Session(continuation); @@ -67,6 +92,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem { public void afterTest() throws Exception { users.clear(); + memoryUsersRepository.clear(); resetData(); } @@ -127,5 +153,11 @@ public abstract class JamesImapHostSystem implements ImapHostSystem { public void beforeTests() throws Exception { // default do nothing } + + private HierarchicalConfiguration userRepositoryConfiguration() { + PropertyListConfiguration configuration = new PropertyListConfiguration(); + configuration.addProperty("administratorId", "imapuser"); + return configuration; + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java index 58a9892..6f241bb 100644 --- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java +++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java @@ -23,6 +23,8 @@ import java.util.Locale; import javax.inject.Inject; +import org.apache.james.mailbox.model.MailboxConstants; +import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mpt.api.ImapHostSystem; import org.apache.james.mpt.imapmailbox.suite.base.BaseNonAuthenticatedState; import org.junit.Test; @@ -32,23 +34,31 @@ public class AuthenticatePlain extends BaseNonAuthenticatedState { @Inject private static ImapHostSystem system; - public AuthenticatePlain() throws Exception { super(system); } @Test public void testAuthenticatePlainUS() throws Exception { + system.addUser("delegate", "123456"); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "delegate", "delegate")); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "imapuser", "imapuser")); scriptTest("AuthenticatePlain", Locale.US); } @Test public void testAuthenticatePlainITALY() throws Exception { + system.addUser("delegate", "123456"); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "delegate", "delegate")); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "imapuser", "imapuser")); scriptTest("AuthenticatePlain", Locale.ITALY); } @Test public void testAuthenticatePlainKOREA() throws Exception { + system.addUser("delegate", "123456"); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "delegate", "delegate")); + system.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "imapuser", "imapuser")); scriptTest("AuthenticatePlain", Locale.KOREA); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test index 8408748..50fa93d 100644 --- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test +++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test @@ -18,39 +18,78 @@ ################################################################ # Correct user with correct password can authenticate with delegation part missing -C: abcd AUTHENTICATE "PLAIN" {24+} +C: 0001 AUTHENTICATE "PLAIN" {24+} # imapuser\0password C: aW1hcHVzZXIAcGFzc3dvcmQ= -S: abcd OK AUTHENTICATE completed. +S: 0001 OK AUTHENTICATE completed. + +# Ensure we are imapuser +C: 0002 SELECT imapuser +SUB { +S: \* FLAGS .* +S: \* .* EXISTS +S: \* .* RECENT +S: \* OK \[UIDVALIDITY .*\] UIDs valid +S: \* OK \[PERMANENTFLAGS .*\] Limited +S: \* OK \[HIGHESTMODSEQ .*\] Highest +S: \* OK \[UIDNEXT .*\] Predicted next UID +} +S: 0002 OK \[READ-WRITE\] SELECT completed\. REINIT # Correct user with correct password can authenticate with empty delegation part -C: abcd AUTHENTICATE "PLAIN" {24+} +C: 0003 AUTHENTICATE "PLAIN" {24+} # \0imapuser\0password C: AGltYXB1c2VyAHBhc3N3b3Jk -S: abcd OK AUTHENTICATE completed. +S: 0003 OK AUTHENTICATE completed. + +# Ensure we are imapuser +C: 0004 SELECT imapuser +SUB { +S: \* FLAGS .* +S: \* .* EXISTS +S: \* .* RECENT +S: \* OK \[UIDVALIDITY .*\] UIDs valid +S: \* OK \[PERMANENTFLAGS .*\] Limited +S: \* OK \[HIGHESTMODSEQ .*\] Highest +S: \* OK \[UIDNEXT .*\] Predicted next UID +} +S: 0004 OK \[READ-WRITE\] SELECT completed\. REINIT # Correct user with bad password cannot authenticate -C: abcd AUTHENTICATE "PLAIN" {28+} +C: 0005 AUTHENTICATE "PLAIN" {28+} # \0imapuser\0badpassword C: AGltYXB1c2VyAGJhZHBhc3N3b3Jk -S: abcd NO AUTHENTICATE failed. Authentication failed. +S: 0005 NO AUTHENTICATE failed. Authentication failed. REINIT # Bad user cannot authenticate -C: abcd AUTHENTICATE "PLAIN" {24+} +C: 0006 AUTHENTICATE "PLAIN" {24+} # \0baduser\0password C: AGJhZHVzZXIAcGFzc3dvcmQ= -S: abcd NO AUTHENTICATE failed. Authentication failed. +S: 0006 NO AUTHENTICATE failed. Authentication failed. REINIT # Correct user with correct password can authenticate with any delegation part -C: abcd AUTHENTICATE "PLAIN" {36+} +C: 0007 AUTHENTICATE "PLAIN" {36+} # delegate\0imapuser\0password C: ZGVsZWdhdGUAaW1hcHVzZXIAcGFzc3dvcmQ= -S: abcd OK AUTHENTICATE completed. +S: 0007 OK AUTHENTICATE completed. + +# Ensure we are delegate +C: 0008 SELECT delegate +SUB { +S: \* FLAGS .* +S: \* .* EXISTS +S: \* .* RECENT +S: \* OK \[UIDVALIDITY .*\] UIDs valid +S: \* OK \[PERMANENTFLAGS .*\] Limited +S: \* OK \[HIGHESTMODSEQ .*\] Highest +S: \* OK \[UIDNEXT .*\] Predicted next UID +} +S: 0008 OK \[READ-WRITE\] SELECT completed\. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java index 5989b02..a745032 100644 --- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java +++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/ElasticSearchHostSystem.java @@ -53,8 +53,6 @@ import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory; import org.apache.james.mailbox.inmemory.InMemoryMessageId; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreSubscriptionManager; import org.apache.james.mailbox.store.extractor.DefaultTextExtractor; @@ -77,12 +75,7 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem { private EmbeddedElasticSearch embeddedElasticSearch; private Path tempDirectory; private StoreMailboxManager mailboxManager; - private FakeAuthenticator userManager; - public boolean addUser(String user, String password) throws Exception { - userManager.addUser(user, password); - return true; - } @Override public void beforeTest() throws Exception { @@ -111,7 +104,6 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem { MailboxMappingFactory.getMappingContent() ); - userManager = new FakeAuthenticator(); InMemoryMailboxSessionMapperFactory factory = new InMemoryMailboxSessionMapperFactory(); InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory(); @@ -125,7 +117,7 @@ public class ElasticSearchHostSystem extends JamesImapHostSystem { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new StoreMailboxManager(factory, userManager, FakeAuthorizator.defaultReject(), aclResolver, groupMembershipResolver, messageParser, + mailboxManager = new StoreMailboxManager(factory, authenticator, authorizator, aclResolver, groupMembershipResolver, messageParser, messageIdFactory, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE); mailboxManager.setMessageSearchIndex(searchIndex); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java index 4feb238..232d609 100644 --- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java +++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java @@ -40,8 +40,6 @@ import org.apache.james.mailbox.hbase.HBaseMailboxSessionMapperFactory; import org.apache.james.mailbox.hbase.mail.HBaseModSeqProvider; import org.apache.james.mailbox.hbase.mail.HBaseUidProvider; import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.StoreSubscriptionManager; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -66,7 +64,6 @@ public class HBaseHostSystem extends JamesImapHostSystem { public static Boolean useMiniCluster = true; private final HBaseMailboxManager mailboxManager; - private final FakeAuthenticator userManager; private MiniHBaseCluster hbaseCluster; private final Configuration conf; @@ -91,9 +88,6 @@ public class HBaseHostSystem extends JamesImapHostSystem { conf = HBaseConfiguration.create(); } - userManager = new FakeAuthenticator(); - FakeAuthorizator authorizator = FakeAuthorizator.defaultReject(); - final HBaseModSeqProvider modSeqProvider = new HBaseModSeqProvider(conf); final HBaseUidProvider uidProvider = new HBaseUidProvider(conf); DefaultMessageId.Factory messageIdFactory = new DefaultMessageId.Factory(); @@ -103,7 +97,7 @@ public class HBaseHostSystem extends JamesImapHostSystem { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new HBaseMailboxManager(mapperFactory, userManager, authorizator, aclResolver, groupMembershipResolver, + mailboxManager = new HBaseMailboxManager(mapperFactory, authenticator, authorizator, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); mailboxManager.init(); @@ -133,11 +127,6 @@ public class HBaseHostSystem extends JamesImapHostSystem { mailboxManager.logout(session, false); } - public boolean addUser(String user, String password) { - userManager.addUser(user, password); - return true; - } - public final void resetUserMetaData() throws Exception { File dir = new File(META_DATA_DIRECTORY); if (dir.exists()) { http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java index 8cb3eee..7c909d0 100644 --- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java +++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java @@ -19,6 +19,7 @@ package org.apache.james.mpt.imapmailbox.inmemory; import org.apache.james.mpt.imapmailbox.AbstractMailboxTest; +import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain; import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState; import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions; import org.apache.james.mpt.imapmailbox.suite.Events; @@ -48,6 +49,7 @@ import org.junit.runners.Suite.SuiteClasses; @GuiceModules({ InMemoryMailboxTestModule.class }) @SuiteClasses({ AuthenticatedState.class, + AuthenticatePlain.class, ConcurrentSessions.class, Events.class, Expunge.class, http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryEventAsynchronousHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryEventAsynchronousHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryEventAsynchronousHostSystem.java index a628031..466b368 100644 --- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryEventAsynchronousHostSystem.java +++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryEventAsynchronousHostSystem.java @@ -35,8 +35,6 @@ import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.quota.QuotaRootResolver; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreSubscriptionManager; import org.apache.james.mailbox.store.event.AsynchronousEventDelivery; @@ -56,7 +54,6 @@ public class InMemoryEventAsynchronousHostSystem extends JamesImapHostSystem { private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT); private StoreMailboxManager mailboxManager; - private FakeAuthenticator userManager; public static JamesImapHostSystem build() throws Exception { return new InMemoryEventAsynchronousHostSystem(); @@ -65,11 +62,6 @@ public class InMemoryEventAsynchronousHostSystem extends JamesImapHostSystem { private InMemoryEventAsynchronousHostSystem() throws MailboxException { initFields(); } - - public boolean addUser(String user, String password) throws Exception { - userManager.addUser(user, password); - return true; - } @Override protected void resetData() throws Exception { @@ -77,13 +69,12 @@ public class InMemoryEventAsynchronousHostSystem extends JamesImapHostSystem { } private void initFields() throws MailboxException { - userManager = new FakeAuthenticator(); InMemoryMailboxSessionMapperFactory factory = new InMemoryMailboxSessionMapperFactory(); MailboxACLResolver aclResolver = new UnionMailboxACLResolver(); GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new StoreMailboxManager(factory, userManager, FakeAuthorizator.defaultReject(), aclResolver, groupMembershipResolver, messageParser, + mailboxManager = new StoreMailboxManager(factory, authenticator, authorizator, aclResolver, groupMembershipResolver, messageParser, new InMemoryMessageId.Factory(), MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE); QuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(factory); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java index de3a4f7..97b4e17 100644 --- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java +++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java @@ -35,8 +35,6 @@ import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager; import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.quota.QuotaRootResolver; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreSubscriptionManager; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -58,7 +56,6 @@ public class InMemoryHostSystem extends JamesImapHostSystem { Feature.ANNOTATION_SUPPORT); private InMemoryMailboxManager mailboxManager; - private FakeAuthenticator userManager; public static JamesImapHostSystem build() throws Exception { return new InMemoryHostSystem(); @@ -67,11 +64,6 @@ public class InMemoryHostSystem extends JamesImapHostSystem { private InMemoryHostSystem() throws MailboxException { initFields(); } - - public boolean addUser(String user, String password) throws Exception { - userManager.addUser(user, password); - return true; - } @Override protected void resetData() throws Exception { @@ -79,13 +71,12 @@ public class InMemoryHostSystem extends JamesImapHostSystem { } private void initFields() throws MailboxException { - userManager = new FakeAuthenticator(); MailboxACLResolver aclResolver = new UnionMailboxACLResolver(); GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); - mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, userManager, FakeAuthorizator.defaultReject(), + mailboxManager = new InMemoryMailboxManager(mailboxSessionMapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver, messageParser, new InMemoryMessageId.Factory()); QuotaRootResolver quotaRootResolver = new DefaultQuotaRootResolver(mailboxManager.getMapperFactory()); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java index 51f5fe2..a52e696 100644 --- a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java +++ b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java @@ -40,8 +40,6 @@ import org.apache.james.mailbox.jcr.JCRUtils; import org.apache.james.mailbox.jcr.mail.JCRModSeqProvider; import org.apache.james.mailbox.jcr.mail.JCRUidProvider; import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -54,14 +52,13 @@ import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate; import org.slf4j.LoggerFactory; import org.xml.sax.InputSource; -public class JCRHostSystem extends JamesImapHostSystem{ +public class JCRHostSystem extends JamesImapHostSystem { public static JamesImapHostSystem build() throws Exception { return new JCRHostSystem(); } private final JCRMailboxManager mailboxManager; - private final FakeAuthenticator userManager; private static final String JACKRABBIT_HOME = "target/jackrabbit"; public static final String META_DATA_DIRECTORY = "target/user-meta-data"; @@ -84,8 +81,7 @@ public class JCRHostSystem extends JamesImapHostSystem{ // Register imap cnd file JCRUtils.registerCnd(repository, workspace, user, pass); - - userManager = new FakeAuthenticator(); + JVMMailboxPathLocker locker = new JVMMailboxPathLocker(); JCRUidProvider uidProvider = new JCRUidProvider(locker, sessionRepos); JCRModSeqProvider modSeqProvider = new JCRModSeqProvider(locker, sessionRepos); @@ -95,7 +91,7 @@ public class JCRHostSystem extends JamesImapHostSystem{ GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new JCRMailboxManager(mf, userManager, FakeAuthorizator.defaultReject(), aclResolver, groupMembershipResolver, messageParser, + mailboxManager = new JCRMailboxManager(mf, authenticator, authorizator, aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); mailboxManager.init(); @@ -118,12 +114,6 @@ public class JCRHostSystem extends JamesImapHostSystem{ } } - - public boolean addUser(String user, String password) { - userManager.addUser(user, password); - return true; - } - public void resetData() throws Exception { resetUserMetaData(); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java index 7c6f930..1fdc752 100644 --- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java +++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java @@ -42,8 +42,6 @@ import org.apache.james.mailbox.jpa.mail.JPAModSeqProvider; import org.apache.james.mailbox.jpa.mail.JPAUidProvider; import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager; import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -67,13 +65,9 @@ public class JPAHostSystem extends JamesImapHostSystem { } private final OpenJPAMailboxManager mailboxManager; - private final FakeAuthenticator userManager; - private final EntityManagerFactory entityManagerFactory; public JPAHostSystem() throws Exception { - - userManager = new FakeAuthenticator(); - entityManagerFactory = JPA_TEST_CLUSTER.getEntityManagerFactory(); + EntityManagerFactory entityManagerFactory = JPA_TEST_CLUSTER.getEntityManagerFactory(); JVMMailboxPathLocker locker = new JVMMailboxPathLocker(); JPAUidProvider uidProvider = new JPAUidProvider(locker, entityManagerFactory); JPAModSeqProvider modSeqProvider = new JPAModSeqProvider(locker, entityManagerFactory); @@ -83,7 +77,7 @@ public class JPAHostSystem extends JamesImapHostSystem { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new OpenJPAMailboxManager(mf, userManager, FakeAuthorizator.defaultReject(), locker, false, aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); + mailboxManager = new OpenJPAMailboxManager(mf, authenticator, authorizator, locker, false, aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); mailboxManager.init(); SubscriptionManager subscriptionManager = new JPASubscriptionManager(mf); @@ -103,11 +97,6 @@ public class JPAHostSystem extends JamesImapHostSystem { } - public boolean addUser(String user, String password) { - userManager.addUser(user, password); - return true; - } - public void resetData() throws Exception { resetUserMetaData(); MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog")); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java index caa3b08..c354e82 100644 --- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java +++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java @@ -48,8 +48,6 @@ import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager; import org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageId; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.apache.james.mailbox.store.mail.model.impl.MessageParser; @@ -73,13 +71,6 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem { private File tempFile; private OpenJPAMailboxManager mailboxManager; - private FakeAuthenticator userManager; - private EntityManagerFactory entityManagerFactory; - - public boolean addUser(String user, String password) throws Exception { - userManager.addUser(user, password); - return true; - } @Override public void beforeTest() throws Exception { @@ -109,8 +100,7 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem { } private void initFields() { - userManager = new FakeAuthenticator(); - entityManagerFactory = JPA_TEST_CLUSTER.getEntityManagerFactory(); + EntityManagerFactory entityManagerFactory = JPA_TEST_CLUSTER.getEntityManagerFactory(); JVMMailboxPathLocker locker = new JVMMailboxPathLocker(); JPAUidProvider uidProvider = new JPAUidProvider(locker, entityManagerFactory); JPAModSeqProvider modSeqProvider = new JPAModSeqProvider(locker, entityManagerFactory); @@ -125,7 +115,7 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem { GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new OpenJPAMailboxManager(factory, userManager, FakeAuthorizator.defaultReject(), locker, false, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); + mailboxManager = new OpenJPAMailboxManager(factory, authenticator, authorizator, locker, false, aclResolver, groupMembershipResolver, messageParser, messageIdFactory); LuceneMessageSearchIndex searchIndex = new LuceneMessageSearchIndex(factory, mailboxIdFactory, fsDirectory, messageIdFactory, mailboxManager); searchIndex.setEnableSuffixMatch(true); http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java ---------------------------------------------------------------------- diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java index dcb73c4..4915fe4 100644 --- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java +++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/host/MaildirHostSystem.java @@ -33,8 +33,6 @@ import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.maildir.MaildirMailboxSessionMapperFactory; import org.apache.james.mailbox.maildir.MaildirStore; import org.apache.james.mailbox.model.MailboxPath; -import org.apache.james.mailbox.store.FakeAuthenticator; -import org.apache.james.mailbox.store.FakeAuthorizator; import org.apache.james.mailbox.store.JVMMailboxPathLocker; import org.apache.james.mailbox.store.StoreMailboxManager; import org.apache.james.mailbox.store.StoreSubscriptionManager; @@ -54,25 +52,22 @@ public class MaildirHostSystem extends JamesImapHostSystem { private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(); private final StoreMailboxManager mailboxManager; - private final FakeAuthenticator userManager; - private final MaildirMailboxSessionMapperFactory mailboxSessionMapperFactory; - + public static JamesImapHostSystem build() throws Exception { return new MaildirHostSystem(); } public MaildirHostSystem() throws MailboxException { - userManager = new FakeAuthenticator(); JVMMailboxPathLocker locker = new JVMMailboxPathLocker(); MaildirStore store = new MaildirStore(MAILDIR_HOME + "/%user", locker); - mailboxSessionMapperFactory = new MaildirMailboxSessionMapperFactory(store); + MaildirMailboxSessionMapperFactory mailboxSessionMapperFactory = new MaildirMailboxSessionMapperFactory(store); StoreSubscriptionManager sm = new StoreSubscriptionManager(mailboxSessionMapperFactory); MailboxACLResolver aclResolver = new UnionMailboxACLResolver(); GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver(); MessageParser messageParser = new MessageParser(); - mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, userManager, FakeAuthorizator.defaultReject(), locker, aclResolver, + mailboxManager = new StoreMailboxManager(mailboxSessionMapperFactory, authenticator, authorizator, locker, aclResolver, groupMembershipResolver, messageParser, new DefaultMessageId.Factory()); mailboxManager.init(); @@ -87,11 +82,7 @@ public class MaildirHostSystem extends JamesImapHostSystem { defaultImapProcessorFactory); (new File(MAILDIR_HOME)).mkdirs(); } - - public boolean addUser(String user, String password) throws Exception { - userManager.addUser(user, password); - return true; - } + @Override public void resetData() throws Exception { http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/mpt/pom.xml ---------------------------------------------------------------------- diff --git a/mpt/pom.xml b/mpt/pom.xml index 4815d79..2fcd3a7 100644 --- a/mpt/pom.xml +++ b/mpt/pom.xml @@ -294,6 +294,11 @@ </dependency> <dependency> <groupId>org.apache.james</groupId> + <artifactId>james-server-mailbox-adapter</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.james</groupId> <artifactId>james-server-data-memory</artifactId> <version>${project.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/3f26ba0c/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java index 02d48b8..003d669 100644 --- a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java +++ b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java @@ -52,6 +52,10 @@ public class MemoryUsersRepository extends AbstractUsersRepository { this.supportVirtualHosting = supportVirtualHosting; } + public void clear() { + userByName.clear(); + } + @Override public boolean supportVirtualHosting() { return supportVirtualHosting; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
