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;
|
package org.libreccm.core;
|
||||||
|
|
||||||
|
import com.arsdigita.runtime.ConfigRegistry;
|
||||||
import com.arsdigita.ui.admin.AdminApplicationCreator;
|
import com.arsdigita.ui.admin.AdminApplicationCreator;
|
||||||
import com.arsdigita.ui.admin.AdminServlet;
|
import com.arsdigita.ui.admin.AdminServlet;
|
||||||
import com.arsdigita.ui.login.LoginApplicationCreator;
|
import com.arsdigita.ui.login.LoginApplicationCreator;
|
||||||
|
|
@ -101,6 +102,10 @@ public class CcmCore implements CcmModule {
|
||||||
final SystemUsersSetup systemUsersSetup = new SystemUsersSetup(
|
final SystemUsersSetup systemUsersSetup = new SystemUsersSetup(
|
||||||
entityManager);
|
entityManager);
|
||||||
systemUsersSetup.setupSystemUsers();
|
systemUsersSetup.setupSystemUsers();
|
||||||
|
|
||||||
|
final ConfigRegistry configRegistry = new ConfigRegistry();
|
||||||
|
configRegistry.initialize("ccm-core");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,15 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.security;
|
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.CcmCore;
|
||||||
import org.libreccm.core.EmailAddress;
|
import org.libreccm.core.EmailAddress;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -31,6 +37,11 @@ import javax.persistence.EntityManager;
|
||||||
*/
|
*/
|
||||||
public class SystemUsersSetup {
|
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;
|
private final EntityManager entityManager;
|
||||||
|
|
||||||
public SystemUsersSetup(final EntityManager entityManager) {
|
public SystemUsersSetup(final EntityManager entityManager) {
|
||||||
|
|
@ -38,13 +49,71 @@ public class SystemUsersSetup {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setupSystemUsers() {
|
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();
|
final User user = new User();
|
||||||
user.setName("public-user");
|
user.setName("public-user");
|
||||||
user.setFamilyName("ccm");
|
user.setFamilyName("LibreCCM");
|
||||||
user.setGivenName("public user");
|
user.setGivenName("Public User");
|
||||||
final EmailAddress email = new EmailAddress();
|
final EmailAddress email = new EmailAddress();
|
||||||
email.setAddress("public-user@localhost");
|
email.setAddress("public-user@localhost");
|
||||||
user.addEmailAddress(email);
|
user.setPrimaryEmailAddress(email);
|
||||||
|
|
||||||
entityManager.persist(user);
|
entityManager.persist(user);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
waf.config.packages=ccm-core
|
||||||
Loading…
Reference in New Issue