X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FActivator.java;h=73c530c82d63d1e0ec31e32cb88da7b47a80157a;hb=9b91329a1c5d7e6b5fc4fae3c21d6019318acc8e;hp=ecd36476facdd5cbc7e187cb87dd0c01d84b840e;hpb=828c592e047d6dd0b88c1835093e07b1526036b0;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Activator.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Activator.java index ecd36476f..73c530c82 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/Activator.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/Activator.java @@ -1,7 +1,6 @@ package org.argeo.cms.internal.kernel; import java.io.IOException; -import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.util.Dictionary; @@ -17,11 +16,11 @@ import org.argeo.node.NodeDeployment; import org.argeo.node.NodeInstance; import org.argeo.node.NodeState; import org.argeo.util.LangUtils; +import org.ietf.jgss.GSSCredential; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; import org.osgi.framework.ServiceReference; -import org.osgi.service.condpermadmin.ConditionalPermissionAdmin; import org.osgi.service.log.LogReaderService; /** @@ -29,12 +28,12 @@ import org.osgi.service.log.LogReaderService; * access to kernel information for the rest of the bundle (and only it) */ public class Activator implements BundleActivator { - private final Log log = LogFactory.getLog(Activator.class); + private final static Log log = LogFactory.getLog(Activator.class); private static Activator instance; private BundleContext bc; - private ConditionalPermissionAdmin permissionAdmin; + private CmsSecurity nodeSecurity; private LogReaderService logReaderService; // private ConfigurationAdmin configurationAdmin; @@ -47,25 +46,19 @@ public class Activator implements BundleActivator { public void start(BundleContext bundleContext) throws Exception { instance = this; this.bc = bundleContext; - this.permissionAdmin = getService(ConditionalPermissionAdmin.class); this.logReaderService = getService(LogReaderService.class); // this.configurationAdmin = getService(ConfigurationAdmin.class); - initSecurity();// must be first - initArgeoLogger(); try { + nodeSecurity = new CmsSecurity(); + initArgeoLogger(); initNode(); } catch (Exception e) { - e.printStackTrace(); - throw new CmsException("Cannot initialize node", e); + log.error("## FATAL: CMS activator failed", e); + // throw new CmsException("Cannot initialize node", e); } } - private void initSecurity() { - URL url = getClass().getClassLoader().getResource(KernelConstants.JAAS_CONFIG); - System.setProperty("java.security.auth.login.config", url.toExternalForm()); - } - private void initArgeoLogger() { logger = new NodeLogger(logReaderService); bc.registerService(ArgeoLogger.class, logger, null); @@ -82,24 +75,7 @@ public class Activator implements BundleActivator { Files.write(stateUuidPath, stateUuid.getBytes()); } nodeState = new CmsState(stateUuid); - // Object cn; - // Configuration nodeConf = - // configurationAdmin.getConfiguration(NodeConstants.NODE_STATE_PID); - // Dictionary props = nodeConf.getProperties(); - // if (props == null) { - // if (log.isDebugEnabled()) - // log.debug("Clean node state"); - // Dictionary envProps = new Hashtable<>(); - // // Use the UUID of the first framework run as state UUID - // cn = bc.getProperty(Constants.FRAMEWORK_UUID); - // envProps.put(NodeConstants.CN, cn); - // nodeConf.update(envProps); - // } else { - // cn = props.get(NodeConstants.CN); - // if (cn == null) - // throw new CmsException("No state UUID available"); - // } - Dictionary regProps = LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_STATE_PID); + Dictionary regProps = LangUtils.dico(Constants.SERVICE_PID, NodeConstants.NODE_STATE_PID); regProps.put(NodeConstants.CN, stateUuid); bc.registerService(NodeState.class, nodeState, regProps); @@ -120,7 +96,6 @@ public class Activator implements BundleActivator { instance = null; this.bc = null; - this.permissionAdmin = null; this.logReaderService = null; // this.configurationAdmin = null; } @@ -136,6 +111,14 @@ public class Activator implements BundleActivator { return instance.nodeState; } + public static GSSCredential getAcceptorCredentials() { + return getCmsSecurity().getServerCredentials(); + } + + static CmsSecurity getCmsSecurity() { + return instance.nodeSecurity; + } + public String[] getLocales() { // TODO optimize? List locales = getNodeState().getLocales();