diff --git a/scm-core/src/main/resources/sonia/scm/config/admin-account.xml b/scm-core/src/main/resources/sonia/scm/config/admin-account.xml
index 1f48b7235b..f1a4d20979 100644
--- a/scm-core/src/main/resources/sonia/scm/config/admin-account.xml
+++ b/scm-core/src/main/resources/sonia/scm/config/admin-account.xml
@@ -1,9 +1,9 @@
- scmadmin
- SCM Administrator
- scm-admin@scm-manager.com
- ff8f5c593a01f9fcd3ed48b09a4b013e8d8f3be7
- true
- xml
+ scmadmin
+ SCM Administrator
+ scm-admin@scm-manager.com
+ ff8f5c593a01f9fcd3ed48b09a4b013e8d8f3be7
+ true
+ xml
diff --git a/scm-core/src/main/resources/sonia/scm/config/anonymous-account.xml b/scm-core/src/main/resources/sonia/scm/config/anonymous-account.xml
new file mode 100644
index 0000000000..a248746e61
--- /dev/null
+++ b/scm-core/src/main/resources/sonia/scm/config/anonymous-account.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ anonymous
+ SCM Anonymous
+ scm-anonymous@scm-manager.com
+ false
+ xml
+
diff --git a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java
index da78b80b06..6b706ef699 100644
--- a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java
+++ b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java
@@ -63,7 +63,9 @@ import java.io.InputStream;
import java.util.Collection;
import java.util.LinkedList;
-import javax.xml.bind.JAXB;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
/**
*
@@ -76,6 +78,10 @@ public class XmlUserManager extends AbstractUserManager
/** Field description */
public static final String ADMIN_PATH = "/sonia/scm/config/admin-account.xml";
+ /** Field description */
+ public static final String ANONYMOUS_PATH =
+ "/sonia/scm/config/anonymous-account.xml";
+
/** Field description */
public static final String STORE_NAME = "users";
@@ -227,7 +233,7 @@ public class XmlUserManager extends AbstractUserManager
{
userDB = new XmlUserDatabase();
userDB.setCreationTime(System.currentTimeMillis());
- createAdminAccount();
+ createDefaultAccounts();
}
}
@@ -352,21 +358,24 @@ public class XmlUserManager extends AbstractUserManager
/**
* Method description
*
+ *
+ * @param unmarshaller
+ * @param path
*/
- private void createAdminAccount()
+ private void createDefaultAccount(Unmarshaller unmarshaller, String path)
{
- InputStream input = XmlUserManager.class.getResourceAsStream(ADMIN_PATH);
+ InputStream input = XmlUserManager.class.getResourceAsStream(path);
try
{
- User user = JAXB.unmarshal(input, User.class);
+ User user = (User) unmarshaller.unmarshal(input);
userDB.add(user);
storeDB();
}
catch (Exception ex)
{
- logger.error("could not create AdminAccount", ex);
+ logger.error("could not create account", ex);
}
finally
{
@@ -374,6 +383,26 @@ public class XmlUserManager extends AbstractUserManager
}
}
+ /**
+ * Method description
+ *
+ */
+ private void createDefaultAccounts()
+ {
+ try
+ {
+ JAXBContext context = JAXBContext.newInstance(User.class);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+
+ createDefaultAccount(unmarshaller, ADMIN_PATH);
+ createDefaultAccount(unmarshaller, ANONYMOUS_PATH);
+ }
+ catch (JAXBException ex)
+ {
+ logger.error(ex.getMessage(), ex);
+ }
+ }
+
/**
* Method description
*