You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/02/22 02:47:56 UTC
[james-project] 02/03: JAMES-3885 Delegation should be supported when using LDAP
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 99cdc911fde7587b603bfb561c25bc72bcc2f8bc
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Feb 20 16:37:01 2023 +0700
JAMES-3885 Delegation should be supported when using LDAP
---
.../james/examples/CustomJamesServerMain.java | 2 ++
.../org/apache/james/CassandraJamesServerMain.java | 2 ++
.../james/CassandraRabbitMQJamesServerMain.java | 2 ++
.../james/DistributedPOP3JamesServerMain.java | 2 ++
.../java/org/apache/james/JPAJamesServerMain.java | 1 +
.../java/org/apache/james/JPAJamesServerMain.java | 1 +
.../org/apache/james/MemoryJamesServerMain.java | 2 ++
.../src/main/java/org/apache/james/Main.java | 2 ++
.../apache/james/NaiveDelegationStoreModule.java} | 23 +++--------------
...le.java => CassandraDelegationStoreModule.java} | 26 +++----------------
.../data/CassandraUsersRepositoryModule.java | 24 ------------------
.../james/data/LdapUsersRepositoryModule.java | 3 ---
.../modules/data/JPAUsersRepositoryModule.java | 3 ---
...odule.java => MemoryDelegationStoreModule.java} | 29 +---------------------
.../modules/data/MemoryUsersRepositoryModule.java | 12 ---------
15 files changed, 22 insertions(+), 112 deletions(-)
diff --git a/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java b/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
index 7d875539e8..6716884cfe 100644
--- a/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
+++ b/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
@@ -27,6 +27,7 @@ import org.apache.james.data.UsersRepositoryModuleChooser;
import org.apache.james.modules.MailboxModule;
import org.apache.james.modules.MailetProcessingModule;
import org.apache.james.modules.data.MemoryDataModule;
+import org.apache.james.modules.data.MemoryDelegationStoreModule;
import org.apache.james.modules.data.MemoryUsersRepositoryModule;
import org.apache.james.modules.eventstore.MemoryEventStoreModule;
import org.apache.james.modules.mailbox.MemoryMailboxModule;
@@ -51,6 +52,7 @@ public class CustomJamesServerMain implements JamesServerMain {
public static final Module CUSTOM_SERVER_MODULE = Modules.combine(
new MailetProcessingModule(),
+ new MemoryDelegationStoreModule(),
new MailboxModule(),
new MemoryDataModule(),
new MemoryEventStoreModule(),
diff --git a/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
index ff4f5f90e7..acadc0b14d 100644
--- a/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ b/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -29,6 +29,7 @@ import org.apache.james.modules.CassandraConsistencyTaskSerializationModule;
import org.apache.james.modules.MailboxModule;
import org.apache.james.modules.MailetProcessingModule;
import org.apache.james.modules.data.CassandraDLPConfigurationStoreModule;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
import org.apache.james.modules.data.CassandraDomainListModule;
import org.apache.james.modules.data.CassandraJmapModule;
import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -135,6 +136,7 @@ public class CassandraJamesServerMain implements JamesServerMain {
public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
new ActiveMQQueueModule(),
+ new CassandraDelegationStoreModule(),
new CassandraBlobStoreDependenciesModule(),
new CassandraDomainListModule(),
new CassandraDLPConfigurationStoreModule(),
diff --git a/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java b/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
index a52f821d83..9d28b1f27a 100644
--- a/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
+++ b/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
@@ -36,6 +36,7 @@ import org.apache.james.modules.blobstore.BlobStoreCacheModulesChooser;
import org.apache.james.modules.blobstore.BlobStoreConfiguration;
import org.apache.james.modules.blobstore.BlobStoreModulesChooser;
import org.apache.james.modules.data.CassandraDLPConfigurationStoreModule;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
import org.apache.james.modules.data.CassandraDomainListModule;
import org.apache.james.modules.data.CassandraJmapModule;
import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -135,6 +136,7 @@ public class CassandraRabbitMQJamesServerMain implements JamesServerMain {
.toInstance(ImmutableSet.of());
public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
+ new CassandraDelegationStoreModule(),
new CassandraDomainListModule(),
new CassandraDLPConfigurationStoreModule(),
new CassandraEventStoreModule(),
diff --git a/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java b/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
index ae0dc04798..a3e389ed35 100644
--- a/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
+++ b/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
@@ -45,6 +45,7 @@ import org.apache.james.modules.TasksCleanupTaskSerializationModule;
import org.apache.james.modules.blobstore.BlobStoreCacheModulesChooser;
import org.apache.james.modules.blobstore.BlobStoreConfiguration;
import org.apache.james.modules.blobstore.BlobStoreModulesChooser;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
import org.apache.james.modules.data.CassandraDomainListModule;
import org.apache.james.modules.data.CassandraJmapModule;
import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -133,6 +134,7 @@ public class DistributedPOP3JamesServerMain implements JamesServerMain {
public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
new CassandraBlobStoreDependenciesModule(),
+ new CassandraDelegationStoreModule(),
new CassandraDomainListModule(),
new CassandraEventStoreModule(),
new CassandraJmapModule(),
diff --git a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
index aa62cbe259..1420cce5a2 100644
--- a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -78,6 +78,7 @@ public class JPAJamesServerMain implements JamesServerMain {
private static final Module JPA_SERVER_MODULE = Modules.combine(
new ActiveMQQueueModule(),
+ new NaiveDelegationStoreModule(),
new DefaultProcessorsConfigurationProviderModule(),
new JPADataModule(),
new JPAMailboxModule(),
diff --git a/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
index be0b84bfb7..7dac746dc1 100644
--- a/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -55,6 +55,7 @@ public class JPAJamesServerMain implements JamesServerMain {
new TaskManagerModule());
private static final Module JPA_SERVER_MODULE = Modules.combine(
+ new NaiveDelegationStoreModule(),
new MailetProcessingModule(),
new JPAEntityManagerModule(),
new JPADataModule(),
diff --git a/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java b/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
index b9de867c7c..124b9f03a7 100644
--- a/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ b/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -29,6 +29,7 @@ import org.apache.james.modules.MailboxModule;
import org.apache.james.modules.MailetProcessingModule;
import org.apache.james.modules.data.MemoryDataJmapModule;
import org.apache.james.modules.data.MemoryDataModule;
+import org.apache.james.modules.data.MemoryDelegationStoreModule;
import org.apache.james.modules.data.MemoryUsersRepositoryModule;
import org.apache.james.modules.eventstore.MemoryEventStoreModule;
import org.apache.james.modules.mailbox.MemoryMailboxModule;
@@ -107,6 +108,7 @@ public class MemoryJamesServerMain implements JamesServerMain {
public static final Module IN_MEMORY_SERVER_MODULE = Modules.combine(
new MailetProcessingModule(),
+ new MemoryDelegationStoreModule(),
new BlobMemoryModule(),
new DeletedMessageVaultModule(),
new BlobExportMechanismModule(),
diff --git a/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java b/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
index 7df9838d75..a1c827ca36 100644
--- a/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
+++ b/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
@@ -28,6 +28,7 @@ import org.apache.james.blob.cassandra.CassandraBlobStoreDAO;
import org.apache.james.mailrepository.api.MailRepositoryUrlStore;
import org.apache.james.mailrepository.cassandra.CassandraMailRepositoryUrlModule;
import org.apache.james.mailrepository.cassandra.CassandraMailRepositoryUrlStore;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
import org.apache.james.modules.data.CassandraDomainListModule;
import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
import org.apache.james.modules.data.CassandraUsersRepositoryModule;
@@ -105,6 +106,7 @@ public class Main implements JamesServerMain {
},
new CassandraDomainListModule(),
new CassandraRecipientRewriteTableModule(),
+ new CassandraDelegationStoreModule(),
new CassandraUsersRepositoryModule(),
new CassandraMetricsModule(),
new TaskManagerModule()
diff --git a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
similarity index 58%
copy from server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
copy to server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
index 930aef3e5b..4b5561e677 100644
--- a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
+++ b/server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
@@ -16,32 +16,17 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.modules.data;
-import org.apache.james.server.core.configuration.ConfigurationProvider;
+package org.apache.james;
+
import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.jpa.JPAUsersRepository;
import org.apache.james.user.memory.NaiveDelegationStore;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
import com.google.inject.AbstractModule;
-import com.google.inject.Scopes;
-import com.google.inject.multibindings.ProvidesIntoSet;
-public class JPAUsersRepositoryModule extends AbstractModule {
+public class NaiveDelegationStoreModule extends AbstractModule {
@Override
- public void configure() {
- bind(JPAUsersRepository.class).in(Scopes.SINGLETON);
- bind(UsersRepository.class).to(JPAUsersRepository.class);
+ protected void configure() {
bind(DelegationStore.class).to(NaiveDelegationStore.class);
}
-
- @ProvidesIntoSet
- InitializationOperation configureJpaUsers(ConfigurationProvider configurationProvider, JPAUsersRepository usersRepository) {
- return InitilizationOperationBuilder
- .forClass(JPAUsersRepository.class)
- .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
- }
}
diff --git a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
similarity index 69%
copy from server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
copy to server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
index 5f4424f652..ebb811c0cf 100644
--- a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
+++ b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
@@ -20,44 +20,31 @@
package org.apache.james.modules.data;
import org.apache.commons.configuration2.ex.ConfigurationException;
-import org.apache.james.adapter.mailbox.DelegationStoreAuthorizator;
import org.apache.james.backends.cassandra.components.CassandraModule;
-import org.apache.james.mailbox.Authorizator;
import org.apache.james.server.core.configuration.ConfigurationProvider;
import org.apache.james.user.api.DelegationStore;
import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
import org.apache.james.user.api.UsernameChangeTaskStep;
-import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.cassandra.CassandraDelegationStore;
import org.apache.james.user.cassandra.CassandraRepositoryConfiguration;
import org.apache.james.user.cassandra.CassandraUsersDAO;
-import org.apache.james.user.lib.UsersDAO;
-import org.apache.james.user.lib.UsersRepositoryImpl;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
-import com.google.inject.TypeLiteral;
import com.google.inject.multibindings.Multibinder;
-import com.google.inject.multibindings.ProvidesIntoSet;
-public class CassandraUsersRepositoryModule extends AbstractModule {
+public class CassandraDelegationStoreModule extends AbstractModule {
@Override
public void configure() {
- bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
- bind(UsersDAO.class).to(CassandraUsersDAO.class);
- bind(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {}).in(Scopes.SINGLETON);
- bind(UsersRepository.class).to(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {});
+ bind(DelegationStore.class).to(CassandraDelegationStore.class);
Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
cassandraDataDefinitions.addBinding().toInstance(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.MODULE);
- bind(DelegationStore.class).to(CassandraDelegationStore.class);
- bind(Authorizator.class).to(DelegationStoreAuthorizator.class);
Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
.addBinding().to(DelegationUsernameChangeTaskStep.class);
+ bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
}
@Provides
@@ -66,11 +53,4 @@ public class CassandraUsersRepositoryModule extends AbstractModule {
return CassandraRepositoryConfiguration.from(
configurationProvider.getConfiguration("usersrepository"));
}
-
- @ProvidesIntoSet
- InitializationOperation configureUsersRepository(ConfigurationProvider configurationProvider, UsersRepositoryImpl<CassandraUsersDAO> usersRepository) {
- return InitilizationOperationBuilder
- .forClass(UsersRepositoryImpl.class)
- .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
- }
}
diff --git a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
index 5f4424f652..009d6c6aa6 100644
--- a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
+++ b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
@@ -19,17 +19,10 @@
package org.apache.james.modules.data;
-import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.james.adapter.mailbox.DelegationStoreAuthorizator;
-import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.mailbox.Authorizator;
import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
-import org.apache.james.user.api.UsernameChangeTaskStep;
import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.cassandra.CassandraDelegationStore;
-import org.apache.james.user.cassandra.CassandraRepositoryConfiguration;
import org.apache.james.user.cassandra.CassandraUsersDAO;
import org.apache.james.user.lib.UsersDAO;
import org.apache.james.user.lib.UsersRepositoryImpl;
@@ -37,34 +30,17 @@ import org.apache.james.utils.InitializationOperation;
import org.apache.james.utils.InitilizationOperationBuilder;
import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
-import com.google.inject.Singleton;
import com.google.inject.TypeLiteral;
-import com.google.inject.multibindings.Multibinder;
import com.google.inject.multibindings.ProvidesIntoSet;
public class CassandraUsersRepositoryModule extends AbstractModule {
@Override
public void configure() {
- bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
bind(UsersDAO.class).to(CassandraUsersDAO.class);
bind(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {}).in(Scopes.SINGLETON);
bind(UsersRepository.class).to(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {});
- Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
- cassandraDataDefinitions.addBinding().toInstance(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.MODULE);
- bind(DelegationStore.class).to(CassandraDelegationStore.class);
bind(Authorizator.class).to(DelegationStoreAuthorizator.class);
-
- Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
- .addBinding().to(DelegationUsernameChangeTaskStep.class);
- }
-
- @Provides
- @Singleton
- public CassandraRepositoryConfiguration provideConfiguration(ConfigurationProvider configurationProvider) throws ConfigurationException {
- return CassandraRepositoryConfiguration.from(
- configurationProvider.getConfiguration("usersrepository"));
}
@ProvidesIntoSet
diff --git a/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java b/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
index 76937d0f14..c7e35b74f3 100644
--- a/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
+++ b/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
@@ -22,11 +22,9 @@ import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.james.adapter.mailbox.UserRepositoryAuthorizator;
import org.apache.james.mailbox.Authorizator;
import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.ldap.LdapRepositoryConfiguration;
import org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository;
-import org.apache.james.user.memory.NaiveDelegationStore;
import org.apache.james.utils.InitializationOperation;
import org.apache.james.utils.InitilizationOperationBuilder;
@@ -41,7 +39,6 @@ public class LdapUsersRepositoryModule extends AbstractModule {
public void configure() {
bind(ReadOnlyUsersLDAPRepository.class).in(Scopes.SINGLETON);
bind(UsersRepository.class).to(ReadOnlyUsersLDAPRepository.class);
- bind(DelegationStore.class).to(NaiveDelegationStore.class);
bind(Authorizator.class).to(UserRepositoryAuthorizator.class);
}
diff --git a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
index 930aef3e5b..5a719244a4 100644
--- a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
+++ b/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
@@ -19,10 +19,8 @@
package org.apache.james.modules.data;
import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.jpa.JPAUsersRepository;
-import org.apache.james.user.memory.NaiveDelegationStore;
import org.apache.james.utils.InitializationOperation;
import org.apache.james.utils.InitilizationOperationBuilder;
@@ -35,7 +33,6 @@ public class JPAUsersRepositoryModule extends AbstractModule {
public void configure() {
bind(JPAUsersRepository.class).in(Scopes.SINGLETON);
bind(UsersRepository.class).to(JPAUsersRepository.class);
- bind(DelegationStore.class).to(NaiveDelegationStore.class);
}
@ProvidesIntoSet
diff --git a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
similarity index 58%
copy from server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
copy to server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
index 9bf747823d..ec272b6675 100644
--- a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
+++ b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
@@ -19,49 +19,22 @@
package org.apache.james.modules.data;
-import org.apache.james.UserEntityValidator;
-import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.server.core.configuration.ConfigurationProvider;
import org.apache.james.user.api.DelegationStore;
import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
import org.apache.james.user.api.UsernameChangeTaskStep;
-import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.memory.MemoryDelegationStore;
-import org.apache.james.user.memory.MemoryUsersRepository;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
-import com.google.inject.Singleton;
import com.google.inject.multibindings.Multibinder;
-import com.google.inject.multibindings.ProvidesIntoSet;
-public class MemoryUsersRepositoryModule extends AbstractModule {
+public class MemoryDelegationStoreModule extends AbstractModule {
@Override
public void configure() {
bind(MemoryDelegationStore.class).in(Scopes.SINGLETON);
- bind(UsersRepository.class).to(MemoryUsersRepository.class);
bind(DelegationStore.class).to(MemoryDelegationStore.class);
-
Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
.addBinding().to(DelegationUsernameChangeTaskStep.class);
}
-
- @Provides
- @Singleton
- public MemoryUsersRepository providesUsersRepository(DomainList domainList, UserEntityValidator validator) {
- MemoryUsersRepository usersRepository = MemoryUsersRepository.withVirtualHosting(domainList);
- usersRepository.setValidator(validator);
- return usersRepository;
- }
-
- @ProvidesIntoSet
- InitializationOperation configureUsersRepository(ConfigurationProvider configurationProvider, MemoryUsersRepository usersRepository) {
- return InitilizationOperationBuilder
- .forClass(MemoryUsersRepository.class)
- .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
- }
}
diff --git a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
index 9bf747823d..0138a78e5f 100644
--- a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
+++ b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
@@ -22,32 +22,20 @@ package org.apache.james.modules.data;
import org.apache.james.UserEntityValidator;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
-import org.apache.james.user.api.UsernameChangeTaskStep;
import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.memory.MemoryDelegationStore;
import org.apache.james.user.memory.MemoryUsersRepository;
import org.apache.james.utils.InitializationOperation;
import org.apache.james.utils.InitilizationOperationBuilder;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
-import com.google.inject.Scopes;
import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
import com.google.inject.multibindings.ProvidesIntoSet;
public class MemoryUsersRepositoryModule extends AbstractModule {
@Override
public void configure() {
- bind(MemoryDelegationStore.class).in(Scopes.SINGLETON);
bind(UsersRepository.class).to(MemoryUsersRepository.class);
- bind(DelegationStore.class).to(MemoryDelegationStore.class);
-
-
- Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
- .addBinding().to(DelegationUsernameChangeTaskStep.class);
}
@Provides
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org