From 422b4cab9e121928d6aa82b3c2e39d9cf1dd055c Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 30 Dec 2010 13:03:01 +0100 Subject: [PATCH] create anonymous account --- .../sonia/scm/config/admin-account.xml | 12 +++--- .../sonia/scm/config/anonymous-account.xml | 17 ++++++++ .../sonia/scm/user/xml/XmlUserManager.java | 41 ++++++++++++++++--- 3 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 scm-core/src/main/resources/sonia/scm/config/anonymous-account.xml 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 *