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 22e116647e705ea4f5b3ffa69ee76cbeb444053b Author: Tran Tien Duc <dt...@linagora.com> AuthorDate: Thu Mar 5 12:27:16 2020 +0700 JAMES-3088 Make LDAPUserRepository inherit AbstractUserRepository Reasons: - AbstractUserRepository and LDAPUserRepository all carry the information of domainList - getMailAddressFor() is 100% same in both classes, can get rid of that duplication - reuse the well implemented `assertValid(Username)` in AbstractUserRepository in the future to serve this JAMES-XXXX - inherit the rich Contract from AbstractUserRepository --- server/data/data-ldap/pom.xml | 4 +++ .../user/ldap/ReadOnlyUsersLDAPRepository.java | 29 ++++++++-------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/server/data/data-ldap/pom.xml b/server/data/data-ldap/pom.xml index 1e0ccfc..6eb5460 100644 --- a/server/data/data-ldap/pom.xml +++ b/server/data/data-ldap/pom.xml @@ -45,6 +45,10 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-data-library</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-lifecycle-api</artifactId> </dependency> <dependency> diff --git a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java index e9af7ac..c1ec084 100644 --- a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java +++ b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java @@ -46,14 +46,13 @@ import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.configuration2.tree.ImmutableNode; import org.apache.commons.lang3.StringUtils; import org.apache.directory.api.ldap.model.filter.FilterEncoder; -import org.apache.james.core.MailAddress; import org.apache.james.core.Username; import org.apache.james.domainlist.api.DomainList; import org.apache.james.lifecycle.api.Configurable; -import org.apache.james.user.api.UsersRepository; import org.apache.james.user.api.UsersRepositoryException; import org.apache.james.user.api.model.User; import org.apache.james.user.ldap.api.LdapConstants; +import org.apache.james.user.lib.AbstractUsersRepository; import org.apache.james.util.OptionalUtils; import org.apache.james.util.retry.DoublingRetrySchedule; import org.apache.james.util.retry.api.RetrySchedule; @@ -243,7 +242,7 @@ import com.google.common.base.Strings; * @see ReadOnlyLDAPGroupRestriction * */ -public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurable { +public class ReadOnlyUsersLDAPRepository extends AbstractUsersRepository implements Configurable { private static final Logger LOGGER = LoggerFactory.getLogger(ReadOnlyUsersLDAPRepository.class); // The name of the factory class which creates the initial context @@ -264,13 +263,11 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl // The schedule for retry attempts private RetrySchedule schedule = null; - private final DomainList domainList; private LdapRepositoryConfiguration ldapConfiguration; @Inject public ReadOnlyUsersLDAPRepository(DomainList domainList) { - super(); - this.domainList = domainList; + super(domainList); } /** @@ -666,6 +663,13 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl } @Override + protected void doAddUser(Username username, String password) throws UsersRepositoryException { + LOGGER.error("This user-repository is read-only. Modifications are not permitted."); + throw new UsersRepositoryException( + "This user-repository is read-only. Modifications are not permitted."); + } + + @Override public boolean isAdministrator(Username username) { if (ldapConfiguration.getAdministratorId().isPresent()) { return ldapConfiguration.getAdministratorId().get().equals(username); @@ -677,17 +681,4 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl public boolean isReadOnly() { return true; } - - - @Override - public MailAddress getMailAddressFor(Username username) throws UsersRepositoryException { - try { - if (supportVirtualHosting()) { - return new MailAddress(username.asString()); - } - return new MailAddress(username.getLocalPart(), domainList.getDefaultDomain()); - } catch (Exception e) { - throw new UsersRepositoryException("Failed to compute mail address associated with the user", e); - } - } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org