This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 9e976d3f49f6ae2068aa583bc66fc75c37c85b52 Author: Raphael Ouazana <[email protected]> AuthorDate: Wed Nov 20 17:21:42 2019 +0100 JAMES-2949 Enforce username to be always lower cased --- .../main/java/org/apache/james/core/Username.java | 21 +-------- .../java/org/apache/james/core/UsernameTest.java | 51 +++++----------------- .../apache/james/mailbox/model/MailboxPath.java | 2 +- .../apache/james/mailbox/MailboxManagerTest.java | 2 +- .../QuotaUsageUpdatedEventSerializationTest.java | 8 ++-- .../james/transport/mailets/AbstractSign.java | 6 +-- .../apache/james/mpt/TestScriptedUserAdder.java | 4 +- .../org/apache/james/user/api/UsersRepository.java | 4 +- .../user/cassandra/CassandraUsersRepository.java | 8 ++-- .../src/test/resources/json/event.json | 2 +- .../src/test/resources/json/eventComplex.json | 2 +- .../src/test/resources/json/eventEmpty.json | 2 +- .../apache/james/user/jpa/JPAUsersRepository.java | 4 +- .../org/apache/james/user/jpa/model/JPAUser.java | 2 +- .../james/user/lib/AbstractUsersRepository.java | 6 +-- .../james/user/memory/MemoryUsersRepository.java | 14 +++--- .../mailets/delivery/SimpleMailStore.java | 2 +- .../integration/GetMailboxesMethodTest.java | 8 ++-- .../SenderAuthIdentifyVerificationRcptHook.java | 2 +- 19 files changed, 50 insertions(+), 100 deletions(-) diff --git a/core/src/main/java/org/apache/james/core/Username.java b/core/src/main/java/org/apache/james/core/Username.java index 8ae8117..ee5d846 100644 --- a/core/src/main/java/org/apache/james/core/Username.java +++ b/core/src/main/java/org/apache/james/core/Username.java @@ -85,7 +85,7 @@ public class Username { Preconditions.checkArgument(!localPart.isEmpty(), "username should not be empty"); Preconditions.checkArgument(!localPart.contains("@"), "username can not contain domain delimiter"); - this.localPart = localPart; + this.localPart = localPart.toLowerCase(Locale.US); this.domainPart = domainPart; } @@ -121,25 +121,6 @@ public class Username { .orElse(localPart); } - public String asId() { - return toLowerCase().asString(); - } - - public Username toLowerCase() { - return new Username(localPart.toLowerCase(Locale.US), domainPart); - } - - public boolean equalsAsId(String otherId) { - if (otherId == null) { - return false; - } - return asId().equals(otherId.toLowerCase(Locale.US)); - } - - public boolean equalsAsId(Username otherId) { - return asId().equals(otherId.asId()); - } - public MailAddress asMailAddress() throws AddressException { Preconditions.checkState(hasDomainPart()); return new MailAddress(localPart, domainPart.get()); diff --git a/core/src/test/java/org/apache/james/core/UsernameTest.java b/core/src/test/java/org/apache/james/core/UsernameTest.java index 8d49880..d787947 100644 --- a/core/src/test/java/org/apache/james/core/UsernameTest.java +++ b/core/src/test/java/org/apache/james/core/UsernameTest.java @@ -27,7 +27,14 @@ import java.util.Optional; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + class UsernameTest { + @Test + void shouldRespectBeanContract() { + EqualsVerifier.forClass(Username.class) + .verify(); + } @Test void fromShouldThrowOnEmptyLocalPart() { @@ -244,50 +251,14 @@ class UsernameTest { } @Test - void equalsAsIdShouldReturnFalseWhenNull() { - assertThat(Username.of("user").equalsAsId((String)null)) - .isFalse(); - } - - @Test - void equalsAsIdShouldReturnFalseWhenDifferentId() { - assertThat(Username.of("user").equalsAsId("user2")) + void equalsShouldReturnFalseWhenDifferentId() { + assertThat(Username.of("user").equals(Username.of("user2"))) .isFalse(); } @Test - void equalsAsIdShouldReturnTrueWhenSameId() { - assertThat(Username.of("user").equalsAsId("user")) - .isTrue(); - } - - @Test - void equalsAsIdShouldReturnTrueWhenSameIdWithDifferentCase() { - assertThat(Username.of("user").equalsAsId("uSEr")) - .isTrue(); - } - - @Test - void equalsAsIdForUsernameShouldThrowWhenNull() { - assertThatThrownBy(() -> Username.of("user").equalsAsId((Username)null)) - .isInstanceOf(NullPointerException.class); - } - - @Test - void equalsAsIdForUsernameShouldReturnFalseWhenDifferentId() { - assertThat(Username.of("user").equalsAsId(Username.of("user2"))) - .isFalse(); - } - - @Test - void equalsAsIdForUsernameShouldReturnTrueWhenSameId() { - assertThat(Username.of("user").equalsAsId(Username.of("user"))) - .isTrue(); - } - - @Test - void equalsAsIdForUsernameShouldReturnTrueWhenSameIdWithDifferentCase() { - assertThat(Username.of("user").equalsAsId(Username.of("uSEr"))) + void equalsShouldReturnTrueWhenSameIdWithDifferentCase() { + assertThat(Username.of("user").equals(Username.of("uSEr"))) .isTrue(); } } diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java index baa600b..e922503 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java @@ -105,7 +105,7 @@ public class MailboxPath { } public boolean belongsTo(MailboxSession mailboxSession) { - return user.equalsAsId(mailboxSession.getUser()); + return user.equals(mailboxSession.getUser()); } /** diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java index d3cb1a1..022294b 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java @@ -606,7 +606,7 @@ public abstract class MailboxManagerTest<T extends MailboxManager> { @Nested class EventTests { - private final QuotaRoot quotaRoot = QuotaRoot.quotaRoot("#private&USER_1", Optional.empty()); + private final QuotaRoot quotaRoot = QuotaRoot.quotaRoot("#private&user_1", Optional.empty()); private EventCollector listener; private MailboxPath inbox; private MailboxId inboxId; diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/QuotaUsageUpdatedEventSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/QuotaUsageUpdatedEventSerializationTest.java index 345016e..66e07e3 100644 --- a/mailbox/event/json/src/test/java/org/apache/james/event/json/QuotaUsageUpdatedEventSerializationTest.java +++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/QuotaUsageUpdatedEventSerializationTest.java @@ -52,7 +52,7 @@ class QuotaUsageUpdatedEventSerializationTest { private static final Instant INSTANT = Instant.parse("2018-11-13T12:00:55Z"); private final MailboxListener.QuotaUsageUpdatedEvent eventWithUserContainsUsername = new MailboxListener.QuotaUsageUpdatedEvent( EVENT_ID, - Username.of("onlyUsername"), + Username.of("onlyusername"), QUOTA_ROOT, QUOTA_COUNT, QUOTA_SIZE, @@ -65,7 +65,7 @@ class QuotaUsageUpdatedEventSerializationTest { " \"countQuota\":{\"used\":12,\"limit\":100,\"limits\":{}}," + " \"time\":\"2018-11-13T12:00:55Z\"," + " \"sizeQuota\":{\"used\":1234,\"limit\":10000,\"limits\":{}}," + - " \"user\":\"onlyUsername\"" + + " \"user\":\"onlyusername\"" + " }" + "}"; @@ -107,7 +107,7 @@ class QuotaUsageUpdatedEventSerializationTest { " \"quotaRoot\":\"#private&foo\"," + " \"time\":\"2018-11-13T12:00:55Z\"," + " \"sizeQuota\":{\"used\":1234,\"limit\":10000,\"limits\":{}}," + - " \"user\":\"onlyUsername\"" + + " \"user\":\"onlyusername\"" + " }" + "}"; @@ -124,7 +124,7 @@ class QuotaUsageUpdatedEventSerializationTest { " \"quotaRoot\":\"#private&foo\"," + " \"time\":\"2018-11-13T12:00:55Z\"," + " \"countQuota\":{\"used\":12,\"limit\":100,\"limits\":{}}," + - " \"user\":\"onlyUsername\"" + + " \"user\":\"onlyusername\"" + " }" + "}"; diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java index 5a643e1..3a3b6f3 100644 --- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java +++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java @@ -574,7 +574,7 @@ public abstract class AbstractSign extends GenericMailet { return false; } - String authUser = fetchedAuthUser.get(); + Username authUser = Username.of(fetchedAuthUser.get()); // The sender is the postmaster? if (Objects.equal(getMailetContext().getPostmaster(), reversePath)) { @@ -586,8 +586,8 @@ public abstract class AbstractSign extends GenericMailet { } else { // is the reverse-path user different from the SMTP authorized user? Username username = getUsername(reversePath); - if (!username.equalsAsId(authUser)) { - LOGGER.info("SMTP logged in as <{}> but pretend to be sender <{}>", authUser, username); + if (!username.equals(authUser)) { + LOGGER.info("SMTP logged in as <{}> but pretend to be sender <{}>", authUser.asString(), username.asString()); return false; } // is there no "From:" address same as the reverse-path? diff --git a/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java b/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java index 75528fc..b490e3d 100644 --- a/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java +++ b/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java @@ -48,7 +48,7 @@ public class TestScriptedUserAdder { @Test public void testShouldExecuteScriptAgainstPort() throws Exception { ScriptedUserAdder adder = new ScriptedUserAdder("localhost", protocol.getPort(), "C: USER='${user}' password='${password}'"); - adder.addUser(Username.of("A User"), "Some Password"); - assertThat(record.complete()).isEqualTo("USER='A User' password='Some Password'\r\n"); + adder.addUser(Username.of("user"), "Some Password"); + assertThat(record.complete()).isEqualTo("USER='user' password='Some Password'\r\n"); } } diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java index a5ffdad..dae2654 100644 --- a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java +++ b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java @@ -136,9 +136,9 @@ public interface UsersRepository { */ default Username getUser(MailAddress mailAddress) throws UsersRepositoryException { if (supportVirtualHosting()) { - return Username.of(mailAddress.asString()).toLowerCase(); + return Username.of(mailAddress.asString()); } else { - return Username.of(mailAddress.getLocalPart()).toLowerCase(); + return Username.of(mailAddress.getLocalPart()); } } diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java index 9f73dfa..fe17614 100644 --- a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java +++ b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java @@ -118,7 +118,7 @@ public class CassandraUsersRepository extends AbstractUsersRepository { public User getUserByName(Username name) { return executor.executeSingleRow( getUserStatement.bind() - .setString(NAME, name.asId())) + .setString(NAME, name.asString())) .map(row -> new DefaultUser(Username.of(row.getString(NAME)), row.getString(PASSWORD), row.getString(ALGORITHM))) .blockOptional() .orElse(null); @@ -133,7 +133,7 @@ public class CassandraUsersRepository extends AbstractUsersRepository { .setString(REALNAME, defaultUser.getUserName().asString()) .setString(PASSWORD, defaultUser.getHashedPassword()) .setString(ALGORITHM, defaultUser.getHashAlgorithm()) - .setString(NAME, defaultUser.getUserName().asId())) + .setString(NAME, defaultUser.getUserName().asString())) .block(); if (!executed) { @@ -145,7 +145,7 @@ public class CassandraUsersRepository extends AbstractUsersRepository { public void removeUser(Username name) throws UsersRepositoryException { boolean executed = executor.executeReturnApplied( removeUserStatement.bind() - .setString(NAME, name.asId())) + .setString(NAME, name.asString())) .block(); if (!executed) { @@ -196,7 +196,7 @@ public class CassandraUsersRepository extends AbstractUsersRepository { user.setPassword(password); boolean executed = executor.executeReturnApplied( insertStatement.bind() - .setString(NAME, user.getUserName().asId()) + .setString(NAME, user.getUserName().asString()) .setString(REALNAME, user.getUserName().asString()) .setString(PASSWORD, user.getHashedPassword()) .setString(ALGORITHM, user.getHashAlgorithm())) diff --git a/server/data/data-jmap-cassandra/src/test/resources/json/event.json b/server/data/data-jmap-cassandra/src/test/resources/json/event.json index d86fdfe..3a8ffda 100644 --- a/server/data/data-jmap-cassandra/src/test/resources/json/event.json +++ b/server/data/data-jmap-cassandra/src/test/resources/json/event.json @@ -1,7 +1,7 @@ { "type":"filtering-rule-set-defined", "eventId":0, - "aggregateId":"FilteringRule/Bart", + "aggregateId":"FilteringRule/bart", "rules":[ { "id":"1", diff --git a/server/data/data-jmap-cassandra/src/test/resources/json/eventComplex.json b/server/data/data-jmap-cassandra/src/test/resources/json/eventComplex.json index 62b6ab0..7371858 100644 --- a/server/data/data-jmap-cassandra/src/test/resources/json/eventComplex.json +++ b/server/data/data-jmap-cassandra/src/test/resources/json/eventComplex.json @@ -1,7 +1,7 @@ { "type":"filtering-rule-set-defined", "eventId":0, - "aggregateId":"FilteringRule/Bart", + "aggregateId":"FilteringRule/bart", "rules":[ { "id":"id-from", diff --git a/server/data/data-jmap-cassandra/src/test/resources/json/eventEmpty.json b/server/data/data-jmap-cassandra/src/test/resources/json/eventEmpty.json index f7fbaee..a04ba44 100644 --- a/server/data/data-jmap-cassandra/src/test/resources/json/eventEmpty.json +++ b/server/data/data-jmap-cassandra/src/test/resources/json/eventEmpty.json @@ -1,6 +1,6 @@ { "type":"filtering-rule-set-defined", "eventId":0, - "aggregateId":"FilteringRule/Bart", + "aggregateId":"FilteringRule/bart", "rules":[] } \ No newline at end of file diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java index 9eed717..7934b16 100644 --- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java +++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java @@ -93,7 +93,7 @@ public class JPAUsersRepository extends AbstractUsersRepository { EntityManager entityManager = entityManagerFactory.createEntityManager(); try { - return (JPAUser) entityManager.createNamedQuery("findUserByName").setParameter("name", name.asId()).getSingleResult(); + return (JPAUser) entityManager.createNamedQuery("findUserByName").setParameter("name", name.asString()).getSingleResult(); } catch (NoResultException e) { return null; } catch (PersistenceException e) { @@ -146,7 +146,7 @@ public class JPAUsersRepository extends AbstractUsersRepository { final EntityTransaction transaction = entityManager.getTransaction(); try { transaction.begin(); - if (entityManager.createNamedQuery("deleteUserByName").setParameter("name", name.asId()).executeUpdate() < 1) { + if (entityManager.createNamedQuery("deleteUserByName").setParameter("name", name.asString()).executeUpdate() < 1) { transaction.commit(); throw new UsersRepositoryException("User " + name.asString() + " does not exist"); } else { diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java index fc805c5..63215a0 100644 --- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java +++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java @@ -42,7 +42,7 @@ import com.google.common.hash.Hashing; @Entity(name = "JamesUser") @Table(name = "JAMES_USER") @NamedQueries({ - @NamedQuery(name = "findUserByName", query = "SELECT user FROM JamesUser user WHERE LOWER(user.name)=:name"), + @NamedQuery(name = "findUserByName", query = "SELECT user FROM JamesUser user WHERE user.name=:name"), @NamedQuery(name = "deleteUserByName", query = "DELETE FROM JamesUser user WHERE user.name=:name"), @NamedQuery(name = "containsUser", query = "SELECT COUNT(user) FROM JamesUser user WHERE user.name=:name"), @NamedQuery(name = "countUsers", query = "SELECT COUNT(user) FROM JamesUser user"), diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java index 2d0cb7f..24558f2 100644 --- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java +++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java @@ -128,10 +128,8 @@ public abstract class AbstractUsersRepository implements UsersRepository, Config @Override public boolean isAdministrator(Username username) throws UsersRepositoryException { - if (administratorId.isPresent()) { - return administratorId.get().toLowerCase().equals(username.toLowerCase()); - } - return false; + return administratorId.map(id -> id.equals(username)) + .orElse(false); } @Override 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 a658f3d..d7c7d53 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 @@ -72,14 +72,14 @@ public class MemoryUsersRepository extends AbstractUsersRepository { @Override protected void doAddUser(Username username, String password) { - DefaultUser user = new DefaultUser(username.toLowerCase(), algo); + DefaultUser user = new DefaultUser(username, algo); user.setPassword(password); - userByName.put(username.asId(), user); + userByName.put(username.asString(), user); } @Override public User getUserByName(Username name) throws UsersRepositoryException { - return userByName.get(name.asId()); + return userByName.get(name.asString()); } @Override @@ -88,24 +88,24 @@ public class MemoryUsersRepository extends AbstractUsersRepository { if (existingUser == null) { throw new UsersRepositoryException("Please provide an existing user to update"); } - userByName.put(user.getUserName().asId(), user); + userByName.put(user.getUserName().asString(), user); } @Override public void removeUser(Username name) throws UsersRepositoryException { - if (userByName.remove(name.asId()) == null) { + if (userByName.remove(name.asString()) == null) { throw new UsersRepositoryException("unable to remove unknown user " + name.asString()); } } @Override public boolean contains(Username name) throws UsersRepositoryException { - return userByName.containsKey(name.asId()); + return userByName.containsKey(name.asString()); } @Override public boolean test(Username name, final String password) throws UsersRepositoryException { - return Optional.ofNullable(userByName.get(name.asId())) + return Optional.ofNullable(userByName.get(name.asString())) .map(user -> user.verifyPassword(password)) .orElse(false); } diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java index 45f9f08..ce6391e 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java @@ -104,7 +104,7 @@ public class SimpleMailStore implements MailStore { private String locateFolder(Username username, Mail mail) { return AttributeUtils - .getValueAndCastFromMail(mail, AttributeName.of(DELIVERY_PATH_PREFIX + username.asId()), String.class) + .getValueAndCastFromMail(mail, AttributeName.of(DELIVERY_PATH_PREFIX + username.asString()), String.class) .orElse(folder); } diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java index c3f4d88..cc5b7e8 100644 --- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java +++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java @@ -256,8 +256,8 @@ public abstract class GetMailboxesMethodTest { public void getMailboxesShouldReturnSharedWithProperty() throws Exception { String mailboxName = "myMailbox"; String myMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), mailboxName).serialize(); - String targetUser1 = "toUser1@" + DOMAIN; - String targetUser2 = "toUser2@" + DOMAIN; + String targetUser1 = "touser1@" + DOMAIN; + String targetUser2 = "touser2@" + DOMAIN; aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser1, new Rfc4314Rights(Right.Lookup, Right.Administer)); aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser2, new Rfc4314Rights(Right.Read, Right.Lookup)); @@ -279,7 +279,7 @@ public abstract class GetMailboxesMethodTest { public void getMailboxesShouldRemoveOwnerRight() throws Exception { String mailboxName = "myMailbox"; String myMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), mailboxName).serialize(); - String targetUser1 = "toUser1@" + DOMAIN; + String targetUser1 = "touser1@" + DOMAIN; aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), ALICE.asString(), new Rfc4314Rights(Right.Read, Right.Administer)); aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser1, new Rfc4314Rights(Right.Read, Right.Lookup)); @@ -317,7 +317,7 @@ public abstract class GetMailboxesMethodTest { public void nonHandledRightsShouldBeFilteredOut() throws Exception { String mailboxName = "myMailbox"; String myMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE.asString(), mailboxName).serialize(); - String targetUser1 = "toUser1@" + DOMAIN; + String targetUser1 = "touser1@" + DOMAIN; aclProbe.replaceRights(MailboxPath.forUser(ALICE, mailboxName), targetUser1, new Rfc4314Rights(Right.Lookup, Right.Post)); diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java index 74e1953..0faa527 100644 --- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java +++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java @@ -75,6 +75,6 @@ public class SenderAuthIdentifyVerificationRcptHook extends AbstractSenderAuthId @Override protected boolean isSenderAllowed(Username user, Username sender) { - return user.equalsAsId(sender); + return user.equals(sender); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
