You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by er...@apache.org on 2012/02/07 15:02:43 UTC
svn commit: r1241469 - in /james/server/trunk/data-file/src:
main/java/org/apache/james/user/file/UsersFileRepository.java
test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
Author: eric
Date: Tue Feb 7 14:02:43 2012
New Revision: 1241469
URL: http://svn.apache.org/viewvc?rev=1241469&view=rev
Log:
Lower cases and check if existing before File user creation - ignoreCase flag was taken into account in this implementation but not tested. didn't seem to work anymore... (JAMES-1369)
Modified:
james/server/trunk/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
james/server/trunk/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
Modified: james/server/trunk/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java?rev=1241469&r1=1241468&r2=1241469&view=diff
==============================================================================
--- james/server/trunk/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java (original)
+++ james/server/trunk/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java Tue Feb 7 14:02:43 2012
@@ -19,6 +19,11 @@
package org.apache.james.user.file;
+import java.util.Iterator;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -28,11 +33,6 @@ import org.apache.james.user.api.UsersRe
import org.apache.james.user.api.model.User;
import org.apache.james.user.lib.AbstractJamesUsersRepository;
-import java.util.Iterator;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-
/**
* <p>
* Implementation of a Repository to store users on the File System.
@@ -122,6 +122,9 @@ public class UsersFileRepository extends
* @see org.apache.james.user.lib.AbstractJamesUsersRepository#doAddUser(org.apache.james.user.api.model.User)
*/
protected void doAddUser(User user) throws UsersRepositoryException {
+ if (contains(user.getUserName())) {
+ throw new UsersRepositoryException(user.getUserName() + " already exists.");
+ }
try {
objectRepository.put(user.getUserName(), user);
} catch (Exception e) {
@@ -159,7 +162,7 @@ public class UsersFileRepository extends
* @return The real name
* @throws UsersRepositoryException
*/
- public String getRealName(String name, boolean ignoreCase) throws UsersRepositoryException {
+ private String getRealName(String name, boolean ignoreCase) throws UsersRepositoryException {
if (ignoreCase) {
Iterator<String> it = list();
while (it.hasNext()) {
@@ -181,7 +184,7 @@ public class UsersFileRepository extends
* @return The real name
* @throws UsersRepositoryException
*/
- public String getRealName(String name) throws UsersRepositoryException {
+ private String getRealName(String name) throws UsersRepositoryException {
return getRealName(name, ignoreCase);
}
@@ -189,7 +192,7 @@ public class UsersFileRepository extends
* @throws UsersRepositoryException
* @see org.apache.james.user.lib.AbstractJamesUsersRepository#doUpdateUser(org.apache.james.user.api.model.User)
*/
- public void doUpdateUser(User user) throws UsersRepositoryException {
+ protected void doUpdateUser(User user) throws UsersRepositoryException {
try {
objectRepository.put(user.getUserName(), user);
} catch (Exception e) {
@@ -219,7 +222,7 @@ public class UsersFileRepository extends
* This is not longer in the api (deprecated)
* @see org.apache.james.user.api.UsersRepository#containsCaseInsensitive(java.lang.String)
*/
- public boolean containsCaseInsensitive(String name) throws UsersRepositoryException {
+ private boolean containsCaseInsensitive(String name) throws UsersRepositoryException {
Iterator<String> it = list();
while (it.hasNext()) {
if (name.equalsIgnoreCase((String) it.next())) {
Modified: james/server/trunk/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java?rev=1241469&r1=1241468&r2=1241469&view=diff
==============================================================================
--- james/server/trunk/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java (original)
+++ james/server/trunk/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java Tue Feb 7 14:02:43 2012
@@ -24,25 +24,35 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.commons.io.FileUtils;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.rrt.api.RecipientRewriteTable;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.james.user.api.model.JamesUser;
-import org.apache.james.user.file.UsersFileRepository;
import org.apache.james.user.lib.AbstractUsersRepositoryTest;
-import org.apache.mailet.MailAddress;
import org.slf4j.LoggerFactory;
/**
* Test basic behaviors of UsersFileRepository
*/
public class UsersFileRepositoryTest extends AbstractUsersRepositoryTest {
+
+ private static final String TARGET_REPOSITORY_FOLDER = "target/var/users";
+
+ /**
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ File targetRepositoryFolder = new File(TARGET_REPOSITORY_FOLDER);
+ if (targetRepositoryFolder.exists()) {
+ FileUtils.deleteDirectory(targetRepositoryFolder);
+ }
+ this.usersRepository = getUsersRepository();
+ }
/**
* Create the repository to be tested.
@@ -69,6 +79,8 @@ public class UsersFileRepositoryTest ext
DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder("test");
configuration.addProperty("destination.[@URL]", "file://target/var/users");
+ // Configure with ignoreCase = false, we need some more work to support true
+ configuration.addProperty("ignoreCase", "false");
UsersFileRepository res = new UsersFileRepository();
@@ -78,6 +90,15 @@ public class UsersFileRepositoryTest ext
res.init();
return res;
}
+
+ /* Disable testUpperCaseSameUser test.
+ *
+ * @see org.apache.james.user.lib.AbstractUsersRepositoryTest#testUpperCaseSameUser()
+ */
+ @Override
+ public void testUpperCaseSameUser() throws UsersRepositoryException {
+ }
+
protected void disposeUsersRepository() throws UsersRepositoryException {
if (this.usersRepository != null) {
@@ -89,44 +110,4 @@ public class UsersFileRepositoryTest ext
}
}
- public void testRecipientRewriteTableImpl() throws Exception {
- String username = "test";
- String password = "pass";
- String alias = "alias";
- String domain = "localhost";
- String forward = "forward@somewhere";
-
- UsersFileRepository repos = (UsersFileRepository) getUsersRepository();
- repos.setEnableAliases(true);
- repos.setEnableForwarding(true);
- repos.addUser(username, password);
-
- JamesUser user = (JamesUser) repos.getUserByName(username);
- user.setAlias(alias);
- repos.updateUser(user);
-
- Collection<String> map = ((RecipientRewriteTable) repos).getMappings(username, domain);
- assertNull("No mapping", map);
-
- user.setAliasing(true);
- repos.updateUser(user);
- map = ((RecipientRewriteTable) repos).getMappings(username, domain);
- assertEquals("One mapping", 1, map.size());
- assertEquals("Alias found", map.iterator().next().toString(), alias + "@" + domain);
-
- user.setForwardingDestination(new MailAddress(forward));
- repos.updateUser(user);
- map = ((RecipientRewriteTable) repos).getMappings(username, domain);
- assertTrue("One mapping", map.size() == 1);
- assertEquals("Alias found", map.iterator().next().toString(), alias + "@" + domain);
-
- user.setForwarding(true);
- repos.updateUser(user);
- map = ((RecipientRewriteTable) repos).getMappings(username, domain);
- Iterator<String> mappings = map.iterator();
- assertTrue("Two mapping", map.size() == 2);
- assertEquals("Alias found", mappings.next().toString(), alias + "@" + domain);
- assertEquals("Forward found", mappings.next().toString(), forward);
- }
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org