CCM NG: More work to get CCM NG running
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3765 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
3914360c48
commit
c54956d642
|
|
@ -0,0 +1 @@
|
|||
waf.config.packages=ccm-core
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
package org.libreccm.core;
|
||||
|
||||
import com.arsdigita.runtime.ConfigRegistry;
|
||||
import com.arsdigita.ui.admin.AdminApplicationCreator;
|
||||
import com.arsdigita.ui.admin.AdminServlet;
|
||||
import com.arsdigita.ui.login.LoginApplicationCreator;
|
||||
|
|
@ -101,6 +102,10 @@ public class CcmCore implements CcmModule {
|
|||
final SystemUsersSetup systemUsersSetup = new SystemUsersSetup(
|
||||
entityManager);
|
||||
systemUsersSetup.setupSystemUsers();
|
||||
|
||||
final ConfigRegistry configRegistry = new ConfigRegistry();
|
||||
configRegistry.initialize("ccm-core");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -18,9 +18,15 @@
|
|||
*/
|
||||
package org.libreccm.security;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.libreccm.core.CcmCore;
|
||||
import org.libreccm.core.EmailAddress;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
/**
|
||||
|
|
@ -31,6 +37,11 @@ import javax.persistence.EntityManager;
|
|||
*/
|
||||
public class SystemUsersSetup {
|
||||
|
||||
private static final Logger LOGGER = LogManager.getLogger(
|
||||
SystemUsersSetup.class);
|
||||
|
||||
private static final String DEFAULT_ADMIN_PW = "$shiro1$SHA-512$500000$MFPkVikNoRrBZ8R8CxQIHA==$UvgO2K+poSRGw5co63P3ygpWsX7H9N0TgqdrZPBqdXv6Q+/OCL/qOocVbg65/Yjv5hyri6A3zhw7K8mEgpISoA==";
|
||||
|
||||
private final EntityManager entityManager;
|
||||
|
||||
public SystemUsersSetup(final EntityManager entityManager) {
|
||||
|
|
@ -38,13 +49,71 @@ public class SystemUsersSetup {
|
|||
}
|
||||
|
||||
public void setupSystemUsers() {
|
||||
LOGGER.info("Creating system users...");
|
||||
createAdmin();
|
||||
createPublicUser();
|
||||
}
|
||||
|
||||
private void createAdmin() {
|
||||
LOGGER.info("Creating admin user...");
|
||||
final User admin = new User();
|
||||
admin.setName("admin");
|
||||
admin.setFamilyName("LibreCCM");
|
||||
admin.setGivenName("System Administrator");
|
||||
final EmailAddress adminEmail = new EmailAddress();
|
||||
adminEmail.setAddress("admin@localhost");
|
||||
admin.setPrimaryEmailAddress(adminEmail);
|
||||
|
||||
String adminPassword = DEFAULT_ADMIN_PW;
|
||||
final InputStream inputStream = getClass().getResourceAsStream(
|
||||
"/integration.properties");
|
||||
if (inputStream == null) {
|
||||
LOGGER.warn("No integration.properties file found. Using default "
|
||||
+ "password (see documentation)");
|
||||
} else {
|
||||
final Properties properties = new Properties();
|
||||
try {
|
||||
properties.load(inputStream);
|
||||
final String password = properties.getProperty("admin.password");
|
||||
if((password != null) && !password.isEmpty()) {
|
||||
adminPassword = password;
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
LOGGER.warn("Failed to load integration.properties. "
|
||||
+ "Using default password.",
|
||||
ex);
|
||||
}
|
||||
}
|
||||
admin.setPassword(adminPassword);
|
||||
|
||||
final Role adminRole = new Role();
|
||||
adminRole.setName("system-administrator");
|
||||
|
||||
final RoleMembership membership = new RoleMembership();
|
||||
membership.setRole(adminRole);
|
||||
membership.setMember(admin);
|
||||
|
||||
final Permission adminPermission = new Permission();
|
||||
adminPermission.setGrantee(adminRole);
|
||||
adminPermission.setGrantedPrivilege("*");
|
||||
|
||||
admin.addRoleMembership(membership);
|
||||
adminRole.addMembership(membership);
|
||||
|
||||
entityManager.persist(admin);
|
||||
entityManager.persist(adminRole);
|
||||
entityManager.persist(membership);
|
||||
entityManager.persist(adminPermission);
|
||||
}
|
||||
|
||||
private void createPublicUser() {
|
||||
final User user = new User();
|
||||
user.setName("public-user");
|
||||
user.setFamilyName("ccm");
|
||||
user.setGivenName("public user");
|
||||
user.setFamilyName("LibreCCM");
|
||||
user.setGivenName("Public User");
|
||||
final EmailAddress email = new EmailAddress();
|
||||
email.setAddress("public-user@localhost");
|
||||
user.addEmailAddress(email);
|
||||
user.setPrimaryEmailAddress(email);
|
||||
|
||||
entityManager.persist(user);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
waf.config.packages=ccm-core
|
||||
Loading…
Reference in New Issue