diff --git a/config/alfresco/authentication-services-context.xml b/config/alfresco/authentication-services-context.xml
index 98a1a96bc6..50023a746f 100644
--- a/config/alfresco/authentication-services-context.xml
+++ b/config/alfresco/authentication-services-context.xml
@@ -407,4 +407,18 @@
false
+
+
+
+
+ 6
+
+
+
+
+
+
+ 8
+
+
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/security/authentication/BasicPasswordGenerator.java b/source/java/org/alfresco/repo/security/authentication/BasicPasswordGenerator.java
new file mode 100644
index 0000000000..41c54ef3db
--- /dev/null
+++ b/source/java/org/alfresco/repo/security/authentication/BasicPasswordGenerator.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2005-2007 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.security.authentication;
+
+import org.apache.commons.lang.RandomStringUtils;
+
+/**
+ * Generates a password of specified length consisting of printable ASCII characters
+ *
+ * @author glen johnson at Alfresco dot com
+ */
+public class BasicPasswordGenerator implements PasswordGenerator
+{
+ // password length property
+ private int passwordLength;
+
+ /**
+ * Set the password length
+ *
+ * @param passwordLength the password length
+ */
+ public void setPasswordLength(int passwordLength)
+ {
+ this.passwordLength = passwordLength;
+ }
+
+ /**
+ * Returns a generated password
+ *
+ * @return generated password
+ */
+ public String generatePassword()
+ {
+ return RandomStringUtils.randomAscii(passwordLength);
+ }
+}
diff --git a/source/java/org/alfresco/repo/security/authentication/BasicUserNameGenerator.java b/source/java/org/alfresco/repo/security/authentication/BasicUserNameGenerator.java
new file mode 100644
index 0000000000..faa2fe1f73
--- /dev/null
+++ b/source/java/org/alfresco/repo/security/authentication/BasicUserNameGenerator.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2005-2007 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.security.authentication;
+
+import org.apache.commons.lang.RandomStringUtils;
+
+/**
+ * Generates a simple numeric user name of specified length
+ *
+ * @author glen johnson at Alfresco dot com
+ */
+public class BasicUserNameGenerator implements UserNameGenerator
+{
+ // user name length property
+ private int userNameLength;
+
+ /**
+ * Set the user name length
+ *
+ * @param userNameLength the user name length
+ */
+ public void setUserNameLength(int userNameLength)
+ {
+ this.userNameLength = userNameLength;
+ }
+
+ /**
+ * Returns a generated user name
+ *
+ * @return the generated user name
+ */
+ public String generateUserName()
+ {
+ return RandomStringUtils.randomNumeric(userNameLength);
+ }
+}
diff --git a/source/java/org/alfresco/repo/security/authentication/PasswordGenerator.java b/source/java/org/alfresco/repo/security/authentication/PasswordGenerator.java
new file mode 100644
index 0000000000..da914538be
--- /dev/null
+++ b/source/java/org/alfresco/repo/security/authentication/PasswordGenerator.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2005-2007 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.security.authentication;
+
+/**
+ * Implementations of this interface generate a password
+ *
+ * @author glen johnson at Alfresco dot com
+ */
+public interface PasswordGenerator
+{
+ /**
+ * Returns a generated password
+ *
+ * @return the generated password
+ */
+ public String generatePassword();
+}
diff --git a/source/java/org/alfresco/repo/security/authentication/UserNameGenerator.java b/source/java/org/alfresco/repo/security/authentication/UserNameGenerator.java
new file mode 100644
index 0000000000..c573dc1df1
--- /dev/null
+++ b/source/java/org/alfresco/repo/security/authentication/UserNameGenerator.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2005-2007 Alfresco Software Limited.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ * As a special exception to the terms and conditions of version 2.0 of
+ * the GPL, you may redistribute this Program in connection with Free/Libre
+ * and Open Source Software ("FLOSS") applications as described in Alfresco's
+ * FLOSS exception. You should have received a copy of the text describing
+ * the FLOSS exception, and it is also available here:
+ * http://www.alfresco.com/legal/licensing"
+ */
+package org.alfresco.repo.security.authentication;
+
+/**
+ * Implementations of this interface generate a user name
+ *
+ * @author glen johnson at Alfresco dot com
+ */
+public interface UserNameGenerator
+{
+ /**
+ * Returns a generated user name
+ *
+ * @return the generated user name
+ */
+ public String generateUserName();
+}