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 be...@apache.org on 2006/06/20 14:00:57 UTC
svn commit: r415619 - in /james/server/trunk/src: conf/
java/org/apache/james/management/ java/org/apache/james/remotemanager/
test/org/apache/james/management/ test/org/apache/james/test/mock/james/
Author: berndf
Date: Tue Jun 20 05:00:57 2006
New Revision: 415619
URL: http://svn.apache.org/viewvc?rev=415619&view=rev
Log:
- added additional parameter to many operations to select the user repository
- added operation getUserRepositoryNames()
Modified:
james/server/trunk/src/conf/james-assembly.xml
james/server/trunk/src/java/org/apache/james/management/UserManagement.java
james/server/trunk/src/java/org/apache/james/management/UserManagement.xinfo
james/server/trunk/src/java/org/apache/james/management/UserManagementMBean.java
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandlerConfigurationData.java
james/server/trunk/src/test/org/apache/james/management/UserManagementTest.java
james/server/trunk/src/test/org/apache/james/test/mock/james/MockUsersStore.java
Modified: james/server/trunk/src/conf/james-assembly.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-assembly.xml?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/conf/james-assembly.xml (original)
+++ james/server/trunk/src/conf/james-assembly.xml Tue Jun 20 05:00:57 2006
@@ -70,6 +70,7 @@
<!-- The User Management block -->
<block name="usermanagement" class="org.apache.james.management.UserManagement" >
<provide name="localusersrepository" role="org.apache.james.services.UsersRepository"/>
+ <provide name="users-store" role="org.apache.james.services.UsersStore"/>
</block>
<!-- POP3 Server -->
Modified: james/server/trunk/src/java/org/apache/james/management/UserManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/UserManagement.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/UserManagement.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/UserManagement.java Tue Jun 20 05:00:57 2006
@@ -24,6 +24,7 @@
import org.apache.james.services.UsersRepository;
import org.apache.james.services.User;
import org.apache.james.services.JamesUser;
+import org.apache.james.services.UsersStore;
import org.apache.mailet.MailAddress;
import javax.mail.internet.ParseException;
@@ -33,89 +34,112 @@
public class UserManagement implements UserManagementMBean, Serviceable {
+ String ROLE = "org.apache.james.management.UserManagement";
+
/**
* The administered UsersRepository
*/
- private UsersRepository users;
+ private UsersRepository localUsers;
+ private UsersStore usersStore;
/**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service( final ServiceManager componentManager )
throws ServiceException {
- users = (UsersRepository) componentManager.lookup(UsersRepository.ROLE);
- if (users == null) {
- throw new ServiceException("","The user repository could not be found.");
+ localUsers = (UsersRepository) componentManager.lookup(UsersRepository.ROLE);
+ if (localUsers == null) {
+ throw new ServiceException("","The local user repository could not be found.");
+ }
+ usersStore = (UsersStore)componentManager.lookup( UsersStore.ROLE );
+ if (usersStore == null) {
+ throw new ServiceException("","The user store containing the user repositories could not be found.");
}
}
- private JamesUser getJamesUser(String userName) throws UserManagementException {
- User baseuser = users.getUserByName(userName);
+ private JamesUser getJamesUser(String userName, String repositoryName) throws UserManagementException {
+ User baseuser = getUserRepository(repositoryName).getUserByName(userName);
if (baseuser == null) throw new UserManagementException("user not found: " + userName);
if (! (baseuser instanceof JamesUser ) ) throw new UserManagementException("user is not of type JamesUser: " + userName);
return (JamesUser) baseuser;
}
- public boolean addUser(String userName, String password) {
- return users.addUser(userName, password);
+ private UsersRepository getUserRepository(String repositoryName) throws UserManagementException {
+ if (repositoryName == null) return localUsers; // return default
+
+ if (usersStore == null) throw new UserManagementException("cannot access user repository named " + repositoryName);
+
+ UsersRepository repository = usersStore.getRepository(repositoryName);
+ if (repository == null) throw new UserManagementException("user repository does not exist: " + repositoryName);
+
+ return repository;
}
- public boolean deleteUser(String userName) {
+ public boolean addUser(String userName, String password, String repositoryName) throws UserManagementException {
+ return getUserRepository(repositoryName).addUser(userName, password);
+ }
+
+ public boolean deleteUser(String userName, String repositoryName) throws UserManagementException {
+ UsersRepository users = getUserRepository(repositoryName);
if (!users.contains(userName)) return false;
users.removeUser(userName);
return true;
}
- public boolean verifyExists(String userName) {
+ public boolean verifyExists(String userName, String repositoryName) throws UserManagementException {
+ UsersRepository users = getUserRepository(repositoryName);
return users.contains(userName);
}
- public long countUsers() {
+ public long countUsers(String repositoryName) throws UserManagementException {
+ UsersRepository users = getUserRepository(repositoryName);
return users.countUsers();
}
- public String[] listAllUsers() {
+ public String[] listAllUsers(String repositoryName) throws UserManagementException {
List userNames = new ArrayList();
+ UsersRepository users = getUserRepository(repositoryName);
for (Iterator it = users.list(); it.hasNext();) {
userNames.add(it.next());
}
return (String[])userNames.toArray(new String[]{});
}
- public boolean setPassword(String userName, String password) throws UserManagementException {
+ public boolean setPassword(String userName, String password, String repositoryName) throws UserManagementException {
+ UsersRepository users = getUserRepository(repositoryName);
User user = users.getUserByName(userName);
if (user == null) throw new UserManagementException("user not found: " + userName);
return user.setPassword(password);
}
- public boolean setAlias(String userName, String aliasUserName) throws UserManagementException {
- JamesUser user = getJamesUser(userName);
- JamesUser aliasUser = getJamesUser(aliasUserName);
+ public boolean setAlias(String userName, String aliasUserName, String repositoryName) throws UserManagementException {
+ JamesUser user = getJamesUser(userName, null);
+ JamesUser aliasUser = getJamesUser(aliasUserName, null);
if (aliasUser == null) return false;
boolean success = user.setAlias(aliasUserName);
user.setAliasing(true);
- users.updateUser(user);
+ getUserRepository(repositoryName).updateUser(user);
return success;
}
- public boolean unsetAlias(String userName) throws UserManagementException {
- JamesUser user = getJamesUser(userName);
+ public boolean unsetAlias(String userName, String repositoryName) throws UserManagementException {
+ JamesUser user = getJamesUser(userName, null);
if (!user.getAliasing()) return false;
user.setAliasing(false);
- users.updateUser(user);
+ getUserRepository(repositoryName).updateUser(user);
return true;
}
- public String getAlias(String userName) throws UserManagementException {
- JamesUser user = getJamesUser(userName);
+ public String getAlias(String userName, String repositoryName) throws UserManagementException {
+ JamesUser user = getJamesUser(userName, null);
if (!user.getAliasing()) return null;
return user.getAlias();
}
- public boolean setForwardAddress(String userName, String forwardEmailAddress) throws UserManagementException {
+ public boolean setForwardAddress(String userName, String forwardEmailAddress, String repositoryName) throws UserManagementException {
MailAddress forwardAddress;
try {
forwardAddress = new MailAddress(forwardEmailAddress);
@@ -123,30 +147,41 @@
throw new UserManagementException(pe);
}
- JamesUser user = getJamesUser(userName);
+ JamesUser user = getJamesUser(userName, null);
boolean success = user.setForwardingDestination(forwardAddress);
if (!success) return false;
user.setForwarding(true);
- users.updateUser(user);
+ getUserRepository(repositoryName).updateUser(user);
return true;
}
- public boolean unsetForwardAddress(String userName) throws UserManagementException {
- JamesUser user = getJamesUser(userName);
+ public boolean unsetForwardAddress(String userName, String repositoryName) throws UserManagementException {
+ JamesUser user = getJamesUser(userName, null);
if (!user.getForwarding()) return false;
user.setForwarding(false);
- users.updateUser(user);
+ getUserRepository(repositoryName).updateUser(user);
return true;
}
- public String getForwardAddress(String userName) throws UserManagementException {
- JamesUser user = getJamesUser(userName);
+ public String getForwardAddress(String userName, String repositoryName) throws UserManagementException {
+ JamesUser user = getJamesUser(userName, null);
if (!user.getForwarding()) return null;
return user.getForwardingDestination().toString();
}
+ public List getUserRepositoryNames() {
+ List result = new ArrayList();
+ if (usersStore == null) return result;
+
+ Iterator repositoryNames = usersStore.getRepositoryNames();
+ while (repositoryNames.hasNext()) {
+ String name = (String) repositoryNames.next();
+ result.add(name);
+ }
+ return result;
+ }
}
Modified: james/server/trunk/src/java/org/apache/james/management/UserManagement.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/UserManagement.xinfo?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/UserManagement.xinfo (original)
+++ james/server/trunk/src/java/org/apache/james/management/UserManagement.xinfo Tue Jun 20 05:00:57 2006
@@ -16,5 +16,8 @@
<dependency>
<service name="org.apache.james.services.UsersRepository" version="1.0"/>
</dependency>
+ <dependency>
+ <service name="org.apache.james.services.UsersStore" version="1.0"/>
+ </dependency>
</dependencies>
</blockinfo>
Modified: james/server/trunk/src/java/org/apache/james/management/UserManagementMBean.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/UserManagementMBean.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/UserManagementMBean.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/UserManagementMBean.java Tue Jun 20 05:00:57 2006
@@ -17,6 +17,8 @@
package org.apache.james.management;
+import java.util.List;
+
/**
* Expose user account management functionality through JMX.
*
@@ -32,10 +34,12 @@
*
* @param userName The name of the user being added
* @param password The password of the user being added
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the operation was successfull
*/
- boolean addUser(String userName, String password);
-
+ boolean addUser(String userName, String password, String repositoryName) throws UserManagementException;
+
/**
* Deletes a user from this mail server.
*
@@ -43,9 +47,11 @@
* @phoenix:mx-description Delete an existing user
*
* @param userName The name of the user being deleted
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the operation was successfull
*/
- boolean deleteUser(String userName);
+ boolean deleteUser(String userName, String repositoryName) throws UserManagementException;
/**
* Check if a user exists with the given name.
@@ -54,9 +60,11 @@
* @phoenix:mx-description Check for existing user name
*
* @param userName The name of the user
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return TRUE, if the user exists
*/
- boolean verifyExists(String userName);
+ boolean verifyExists(String userName, String repositoryName) throws UserManagementException;
/**
* Total count of existing users
@@ -64,9 +72,11 @@
* @phoenix:mx-operation
* @phoenix:mx-description Total count of existing users
*
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return Total count of existing users
*/
- long countUsers();
+ long countUsers(String repositoryName) throws UserManagementException;
/**
* List the names of all users
@@ -74,9 +84,11 @@
* @phoenix:mx-operation
* @phoenix:mx-description List all existing users
*
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return List of all user names
*/
- String[] listAllUsers();
+ String[] listAllUsers(String repositoryName) throws UserManagementException;
/**
* Set a user's password
@@ -86,10 +98,12 @@
*
* @param userName The name of the user whose password will be changed
* @param password The new password
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the user has been found and the password was changed successfully
*/
- boolean setPassword(String userName, String password) throws UserManagementException;
-
+ boolean setPassword(String userName, String password, String repositoryName) throws UserManagementException;
+
/**
* Set a user's alias to whom all mail is forwarded to
*
@@ -98,10 +112,12 @@
*
* @param userName The name of the user whose alias is set
* @param aliasUserName The user becoming the new alias
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the user has been found and the password was changed successfully
*/
- boolean setAlias(String userName, String aliasUserName) throws UserManagementException;
-
+ boolean setAlias(String userName, String aliasUserName, String repositoryName) throws UserManagementException;
+
/**
* Removes a user's alias which terminates local mail forwarding
*
@@ -109,19 +125,23 @@
* @phoenix:mx-description Removes a user's alias which terminates local mail forwarding
*
* @param userName The name of the user whose alias is unset
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the user has been found and the alias was removed
*/
- boolean unsetAlias(String userName) throws UserManagementException;
-
+ boolean unsetAlias(String userName, String repositoryName) throws UserManagementException;
+
/**
* Retrieves the user's alias, if set
*
* @phoenix:mx-operation
* @phoenix:mx-description Retrieves the user's alias, if set
*
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return User's alias, or NULL, if no alias is set
*/
- String getAlias(String userName) throws UserManagementException;
+ String getAlias(String userName, String repositoryName) throws UserManagementException;
/**
* Set a user's forward email address to whom all mail is forwarded to
@@ -130,11 +150,13 @@
* @phoenix:mx-description Set a user's forward email address to whom all mail is forwarded to
*
* @param userName The name of the user whose forward is set
- * @param forwardEmailAddress The new forward email address
+ * @param forwardEmailAddress The new forward email address
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the user has been found and the password was changed successfully
*/
- boolean setForwardAddress(String userName, String forwardEmailAddress) throws UserManagementException;
-
+ boolean setForwardAddress(String userName, String forwardEmailAddress, String repositoryName) throws UserManagementException;
+
/**
* Removes a user's forward email address which terminates remote mail forwarding
*
@@ -142,18 +164,32 @@
* @phoenix:mx-description Removes a user's forward email address which terminates remote mail forwarding
*
* @param userName The name of the user whose forward is unset
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return if the user has been found and the forward was removed
*/
- boolean unsetForwardAddress(String userName) throws UserManagementException;
-
+ boolean unsetForwardAddress(String userName, String repositoryName) throws UserManagementException;
+
/**
* Retrieves the user's forward, if set
*
* @phoenix:mx-operation
* @phoenix:mx-description Retrieves the user's forward, if set
*
+ * @param userName The name of the user whose forward is set
+ * @param repositoryName The user repository, to which the operation should be applied. If NULL, the LocalUsers
+ * repository is used.
* @return User's forward email address, or NULL, if no forward is set
*/
- String getForwardAddress(String userName) throws UserManagementException;
+ String getForwardAddress(String userName, String repositoryName) throws UserManagementException;
+ /**
+ * Retrieves a list of the names of all available user repositories
+ *
+ * @phoenix:mx-operation
+ * @phoenix:mx-description Retrieves a list of the names of all available user repositories
+ *
+ * @return List<String> of repository names
+ */
+ public List getUserRepositoryNames();
}
Modified: james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java (original)
+++ james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java Tue Jun 20 05:00:57 2006
@@ -27,6 +27,7 @@
import org.apache.james.services.MailServer;
import org.apache.james.services.UsersRepository;
import org.apache.james.services.UsersStore;
+import org.apache.james.management.UserManagement;
import java.util.HashMap;
@@ -78,6 +79,11 @@
= new RemoteManagerHandlerConfigurationDataImpl();
/**
+ * Reference to UserManagement functionality
+ */
+ private UserManagement userManagement;
+
+ /**
* @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
*/
public void service( final ServiceManager componentManager )
@@ -201,6 +207,10 @@
*/
public UsersStore getUserStore() {
return RemoteManager.this.usersStore;
+ }
+
+ public UserManagement getUserManagement() {
+ return RemoteManager.this.userManagement;
}
/**
Modified: james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandlerConfigurationData.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandlerConfigurationData.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandlerConfigurationData.java (original)
+++ james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandlerConfigurationData.java Tue Jun 20 05:00:57 2006
@@ -21,6 +21,7 @@
import org.apache.james.services.MailServer;
import org.apache.james.services.UsersRepository;
import org.apache.james.services.UsersStore;
+import org.apache.james.management.UserManagement;
import java.util.HashMap;
@@ -59,6 +60,11 @@
*/
UsersStore getUserStore();
+ /**
+ * Accessor to User Management functionality
+ */
+ UserManagement getUserManagement();
+
/**
* Returns the Administrative Account Data
*
Modified: james/server/trunk/src/test/org/apache/james/management/UserManagementTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/management/UserManagementTest.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/management/UserManagementTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/management/UserManagementTest.java Tue Jun 20 05:00:57 2006
@@ -21,13 +21,14 @@
import junit.framework.TestCase;
import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.james.services.UsersRepository;
+import org.apache.james.services.UsersStore;
import org.apache.james.test.mock.avalon.MockLogger;
import org.apache.james.test.mock.avalon.MockServiceManager;
+import org.apache.james.test.mock.james.MockUsersStore;
import org.apache.james.userrepository.MockUsersRepository;
-import java.io.IOException;
-import java.util.List;
import java.util.Arrays;
+import java.util.List;
/**
* Tests the UserManagement
@@ -47,36 +48,54 @@
MockServiceManager serviceManager = new MockServiceManager();
m_mockUsersRepository = new MockUsersRepository();
serviceManager.put(UsersRepository.ROLE, m_mockUsersRepository);
+ serviceManager.put(UsersStore.ROLE, new MockUsersStore(m_mockUsersRepository));
return serviceManager;
}
- public void testUserCount() throws IOException {
- assertEquals("no user yet", 0, m_userManagement.countUsers());
+ public void testUserCount() throws UserManagementException {
+ assertEquals("no user yet", 0, m_userManagement.countUsers(null));
m_mockUsersRepository.addUser("testCount1", "testCount");
- assertEquals("1 user", 1, m_userManagement.countUsers());
+ assertEquals("1 user", 1, m_userManagement.countUsers(null));
m_mockUsersRepository.addUser("testCount2", "testCount");
- assertEquals("2 users", 2, m_userManagement.countUsers());
+ assertEquals("2 users", 2, m_userManagement.countUsers(null));
m_mockUsersRepository.removeUser("testCount1");
- assertEquals("1 user", 1, m_userManagement.countUsers());
+ assertEquals("1 user", 1, m_userManagement.countUsers(null));
+ }
+
+ public void testDefaultRepositoryIsLocalUsers() throws UserManagementException {
+ m_userManagement.addUser("testCount1", "testCount", null);
+ m_userManagement.addUser("testCount2", "testCount", "LocalUsers");
+
+ assertEquals("2 users", 2, m_userManagement.countUsers(null));
+ assertEquals("2 users", 2, m_userManagement.countUsers("LocalUsers"));
+ }
+
+ public void testNonExistingRepository() throws UserManagementException {
+ try {
+ m_userManagement.addUser("testCount1", "testCount", "NonExisting");
+ fail("retrieved non-existing repository");
+ } catch (UserManagementException e) {
+ // success
+ }
}
- public void testAddUserAndVerify() throws IOException {
+ public void testAddUserAndVerify() throws UserManagementException {
assertTrue("user added", m_mockUsersRepository.addUser("testCount1", "testCount"));
- assertFalse("user not there", m_userManagement.verifyExists("testNotAdded"));
- assertTrue("user is there", m_userManagement.verifyExists("testCount1"));
+ assertFalse("user not there", m_userManagement.verifyExists("testNotAdded", null));
+ assertTrue("user is there", m_userManagement.verifyExists("testCount1", null));
m_mockUsersRepository.removeUser("testCount1");
- assertFalse("user not there", m_userManagement.verifyExists("testCount1"));
+ assertFalse("user not there", m_userManagement.verifyExists("testCount1", null));
}
- public void testDelUser() throws IOException {
+ public void testDelUser() throws UserManagementException {
assertTrue("user added", m_mockUsersRepository.addUser("testDel", "test"));
- assertFalse("user not there", m_userManagement.verifyExists("testNotDeletable"));
- assertTrue("user is there", m_userManagement.verifyExists("testDel"));
+ assertFalse("user not there", m_userManagement.verifyExists("testNotDeletable", null));
+ assertTrue("user is there", m_userManagement.verifyExists("testDel", null));
m_mockUsersRepository.removeUser("testDel");
- assertFalse("user no longer there", m_userManagement.verifyExists("testDel"));
+ assertFalse("user no longer there", m_userManagement.verifyExists("testDel", null));
}
- public void testListUsers() throws IOException {
+ public void testListUsers() throws UserManagementException {
String[] usersArray = new String[] {"ccc", "aaa", "dddd", "bbbbb"};
List users = Arrays.asList(usersArray);
@@ -86,7 +105,7 @@
assertTrue("user added", m_mockUsersRepository.addUser(user, "test"));
}
- String[] userNames = m_userManagement.listAllUsers();
+ String[] userNames = m_userManagement.listAllUsers(null);
assertEquals("user count", users.size(), userNames.length);
for (int i = 0; i < userNames.length; i++) {
@@ -100,58 +119,58 @@
// do some tests when parameter users don't exist
try {
- m_userManagement.setAlias("testNonExist1", "testNonExist2");
+ m_userManagement.setAlias("testNonExist1", "testNonExist2", null);
fail("user unknown to server");
} catch (UserManagementException e) {
// success
}
- assertTrue("user added", m_userManagement.addUser("testAlias1", "test"));
+ assertTrue("user added", m_userManagement.addUser("testAlias1", "test", null));
- assertNull("no alias set", m_userManagement.getAlias("testAlias1"));
+ assertNull("no alias set", m_userManagement.getAlias("testAlias1", null));
try {
- m_userManagement.setAlias("testAlias1", "testNonExist2");
+ m_userManagement.setAlias("testAlias1", "testNonExist2", null);
fail("alias unknown to server");
} catch (UserManagementException e) {
// success
}
try {
- m_userManagement.setAlias("testNonExist1", "testAlias");
+ m_userManagement.setAlias("testNonExist1", "testAlias", null);
fail("user unknown to server");
} catch (UserManagementException e) {
// success
}
- assertTrue("user added", m_userManagement.addUser("testAlias2", "test"));
+ assertTrue("user added", m_userManagement.addUser("testAlias2", "test", null));
// regular alias
- assertTrue("alias for testAlias1 set to:testAlias2", m_userManagement.setAlias("testAlias1", "testAlias2"));
+ assertTrue("alias for testAlias1 set to:testAlias2", m_userManagement.setAlias("testAlias1", "testAlias2", null));
//TODO: is this correct? even primitive circular aliasing allowed!
- assertTrue("alias for testAlias2 set to:testAlias1", m_userManagement.setAlias("testAlias2", "testAlias1"));
+ assertTrue("alias for testAlias2 set to:testAlias1", m_userManagement.setAlias("testAlias2", "testAlias1", null));
// did first one persist?
- assertEquals("Current alias for testAlias1 is: testAlias2", "testAlias2", m_userManagement.getAlias("testAlias1"));
+ assertEquals("Current alias for testAlias1 is: testAlias2", "testAlias2", m_userManagement.getAlias("testAlias1", null));
//TODO: is this correct? setting self as alias!
- assertTrue("alias for testAlias1 set to:testAlias1", m_userManagement.setAlias("testAlias1", "testAlias1"));
+ assertTrue("alias for testAlias1 set to:testAlias1", m_userManagement.setAlias("testAlias1", "testAlias1", null));
- assertTrue("user added", m_userManagement.addUser("testAlias3", "test"));
+ assertTrue("user added", m_userManagement.addUser("testAlias3", "test", null));
// re-set, simply overwrites
- assertTrue("alias for testAlias1 set to:testAlias3", m_userManagement.setAlias("testAlias1", "testAlias3"));
+ assertTrue("alias for testAlias1 set to:testAlias3", m_userManagement.setAlias("testAlias1", "testAlias3", null));
// check overwrite
- assertEquals("Current alias for testAlias1 is: testAlias3", "testAlias3", m_userManagement.getAlias("testAlias1"));
+ assertEquals("Current alias for testAlias1 is: testAlias3", "testAlias3", m_userManagement.getAlias("testAlias1", null));
// retreat
- assertTrue("alias for testAlias1 unset", m_userManagement.unsetAlias("testAlias1"));
+ assertTrue("alias for testAlias1 unset", m_userManagement.unsetAlias("testAlias1", null));
// check removed alias
//sendCommand("showalias testAlias1");
- assertNull("User testAlias1 does not currently have an alias", m_userManagement.getAlias("testAlias1"));
+ assertNull("User testAlias1 does not currently have an alias", m_userManagement.getAlias("testAlias1", null));
}
@@ -160,55 +179,60 @@
// do some tests when parameter users don't exist
try {
- m_userManagement.setForwardAddress("testNonExist1", "testForward1@locahost");
+ m_userManagement.setForwardAddress("testNonExist1", "testForward1@locahost", null);
fail("user unknown to server");
} catch (UserManagementException e) {
// success
}
- assertTrue("user added", m_userManagement.addUser("testForwardUser", "test"));
+ assertTrue("user added", m_userManagement.addUser("testForwardUser", "test", null));
- assertNull("no forward set", m_userManagement.getForwardAddress("testForwardUser"));
+ assertNull("no forward set", m_userManagement.getForwardAddress("testForwardUser", null));
- assertTrue(m_userManagement.setForwardAddress("testForwardUser", "testForward1@locahost"));
+ assertTrue(m_userManagement.setForwardAddress("testForwardUser", "testForward1@locahost", null));
// did it persist?
- String forwardAddress = m_userManagement.getForwardAddress("testForwardUser");
+ String forwardAddress = m_userManagement.getForwardAddress("testForwardUser", null);
assertEquals("forward for testForwardUser is: testForward1@locahost", "testForward1@locahost", forwardAddress);
// re-set, simply overwrites
- assertTrue(m_userManagement.setForwardAddress("testForwardUser", "testForward2@locahost"));
+ assertTrue(m_userManagement.setForwardAddress("testForwardUser", "testForward2@locahost", null));
// check overwrite
- forwardAddress = m_userManagement.getForwardAddress("testForwardUser");
+ forwardAddress = m_userManagement.getForwardAddress("testForwardUser", null);
assertEquals("forward for testForwardUser is: testForward2@locahost", "testForward2@locahost", forwardAddress);
// retreat
- assertTrue("Forward for testForwardUser unset", m_userManagement.unsetForwardAddress("testForwardUser"));
+ assertTrue("Forward for testForwardUser unset", m_userManagement.unsetForwardAddress("testForwardUser", null));
// check removed forward
- assertNull("no more forward set", m_userManagement.getForwardAddress("testForwardUser"));
+ assertNull("no more forward set", m_userManagement.getForwardAddress("testForwardUser", null));
}
- public void testSetPassword() throws IOException, UserManagementException {
+ public void testSetPassword() throws UserManagementException {
- assertTrue("user added", m_userManagement.addUser("testPwdUser", "pwd1"));
+ assertTrue("user added", m_userManagement.addUser("testPwdUser", "pwd1", null));
assertTrue("initial password", m_mockUsersRepository.test("testPwdUser", "pwd1"));
// set empty pwd
- assertTrue("changed to empty password", m_userManagement.setPassword("testPwdUser", ""));
+ assertTrue("changed to empty password", m_userManagement.setPassword("testPwdUser", "", null));
assertTrue("password changed to empty", m_mockUsersRepository.test("testPwdUser", ""));
// change pwd
- assertTrue("changed password", m_userManagement.setPassword("testPwdUser", "pwd2"));
+ assertTrue("changed password", m_userManagement.setPassword("testPwdUser", "pwd2", null));
assertTrue("password not changed to pwd2", m_mockUsersRepository.test("testPwdUser", "pwd2"));
// assure case sensitivity
- assertTrue("changed password", m_userManagement.setPassword("testPwdUser", "pWD2"));
+ assertTrue("changed password", m_userManagement.setPassword("testPwdUser", "pWD2", null));
assertFalse("password no longer pwd2", m_mockUsersRepository.test("testPwdUser", "pwd2"));
assertTrue("password changed to pWD2", m_mockUsersRepository.test("testPwdUser", "pWD2"));
+ }
+
+ public void testListRepositories() throws UserManagementException {
+ List userRepositoryNames = m_userManagement.getUserRepositoryNames();
+ assertTrue("default is there", userRepositoryNames.contains("LocalUsers"));
}
}
Modified: james/server/trunk/src/test/org/apache/james/test/mock/james/MockUsersStore.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/test/mock/james/MockUsersStore.java?rev=415619&r1=415618&r2=415619&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/test/mock/james/MockUsersStore.java (original)
+++ james/server/trunk/src/test/org/apache/james/test/mock/james/MockUsersStore.java Tue Jun 20 05:00:57 2006
@@ -32,12 +32,13 @@
}
public UsersRepository getRepository(String name) {
+ if (!name.equals("LocalUsers")) return null;
return m_usersRepository;
}
public Iterator getRepositoryNames() {
ArrayList repositoryList = new ArrayList();
- repositoryList.add(m_usersRepository);
+ repositoryList.add("LocalUsers");
return repositoryList.iterator();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org