X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FKernelUtils.java;h=e3bbdb79629d1cd8ed8a9d7837dce0b859a6fc3c;hb=cf53e939cabed54ee2a3074afcf22417fbdf364d;hp=9b220f20af418355142fd8284fd1cc73fb904b11;hpb=06acf73a99f0e3908fe8998f1ff08dee109c5562;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/KernelUtils.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/KernelUtils.java index 9b220f20a..e3bbdb796 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/KernelUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/KernelUtils.java @@ -2,13 +2,17 @@ package org.argeo.cms.internal.kernel; import java.io.File; import java.io.IOException; +import java.io.PrintStream; import java.net.URI; import java.net.URISyntaxException; +import java.nio.file.Path; +import java.nio.file.Paths; import java.security.PrivilegedAction; import java.util.Dictionary; import java.util.Enumeration; import java.util.Hashtable; import java.util.Properties; +import java.util.TreeMap; import java.util.TreeSet; import javax.jcr.Repository; @@ -21,15 +25,15 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.argeo.cms.CmsException; -import org.argeo.cms.auth.AuthConstants; +import org.argeo.node.NodeConstants; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; /** Package utilities */ class KernelUtils implements KernelConstants { - private final static String OSGI_INSTANCE_AREA = "osgi.instance.area"; - private final static String OSGI_CONFIGURATION_AREA = "osgi.configuration.area"; + final static String OSGI_INSTANCE_AREA = "osgi.instance.area"; + final static String OSGI_CONFIGURATION_AREA = "osgi.configuration.area"; static Dictionary asDictionary(Properties props) { Hashtable hashtable = new Hashtable(); @@ -65,25 +69,26 @@ class KernelUtils implements KernelConstants { .getAbsoluteFile(); } + static Path getOsgiInstancePath(String relativePath) { + return Paths.get(getOsgiInstanceUri(relativePath)); + } + static URI getOsgiInstanceUri(String relativePath) { String osgiInstanceBaseUri = getFrameworkProp(OSGI_INSTANCE_AREA); - try { - return new URI(osgiInstanceBaseUri + (relativePath != null ? relativePath : "")); - } catch (URISyntaxException e) { - throw new CmsException("Cannot get OSGi instance URI for " + relativePath, e); - } + return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : "")); } - static String getOsgiInstancePath(String relativePath) { - try { - if (relativePath == null) - return getOsgiInstanceDir().getCanonicalPath(); - else - return new File(getOsgiInstanceDir(), relativePath).getCanonicalPath(); - } catch (IOException e) { - throw new CmsException("Cannot get instance path for " + relativePath, e); - } - } + // static String getOsgiInstancePath(String relativePath) { + // try { + // if (relativePath == null) + // return getOsgiInstanceDir().getCanonicalPath(); + // else + // return new File(getOsgiInstanceDir(), relativePath).getCanonicalPath(); + // } catch (IOException e) { + // throw new CmsException("Cannot get instance path for " + relativePath, + // e); + // } + // } static File getOsgiConfigurationFile(String relativePath) { try { @@ -110,7 +115,7 @@ class KernelUtils implements KernelConstants { Subject subject = new Subject(); LoginContext lc; try { - lc = new LoginContext(AuthConstants.LOGIN_CONTEXT_ANONYMOUS, subject); + lc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject); lc.login(); return subject; } catch (LoginException e) { @@ -118,26 +123,6 @@ class KernelUtils implements KernelConstants { } } - // @Deprecated - // static void anonymousLogin(AuthenticationManager authenticationManager) { - // try { - // List anonAuthorities = Collections - // .singletonList(new GrantedAuthorityPrincipal( - // KernelHeader.ROLE_ANONYMOUS)); - // UserDetails anonUser = new User(KernelHeader.USERNAME_ANONYMOUS, - // "", true, true, true, true, anonAuthorities); - // AnonymousAuthenticationToken anonToken = new - // AnonymousAuthenticationToken( - // DEFAULT_SECURITY_KEY, anonUser, anonAuthorities); - // Authentication authentication = authenticationManager - // .authenticate(anonToken); - // SecurityContextHolder.getContext() - // .setAuthentication(authentication); - // } catch (Exception e) { - // throw new CmsException("Cannot authenticate", e); - // } - // } - // HTTP static void logRequestHeaders(Log log, HttpServletRequest request) { if (!log.isDebugEnabled()) @@ -165,6 +150,14 @@ class KernelUtils implements KernelConstants { // for (String key : keys) // log.debug(key + "=" + bc.getProperty(key)); } + + static void printSystemProperties(PrintStream out){ + TreeMap display = new TreeMap<>(); + for (Object key : System.getProperties().keySet()) + display.put(key.toString(), System.getProperty(key.toString())); + for (String key : display.keySet()) + out.println(key + "=" + display.get(key)); + } static Session openAdminSession(Repository repository) { return openAdminSession(repository, null); @@ -175,7 +168,7 @@ class KernelUtils implements KernelConstants { Thread.currentThread().setContextClassLoader(KernelUtils.class.getClassLoader()); LoginContext loginContext; try { - loginContext = new LoginContext(AuthConstants.LOGIN_CONTEXT_DATA_ADMIN); + loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_DATA_ADMIN); loginContext.login(); } catch (LoginException e1) { throw new CmsException("Could not login as data admin", e1); @@ -214,6 +207,17 @@ class KernelUtils implements KernelConstants { return getBundleContext(KernelUtils.class); } + private static URI safeUri(String uri) { + if (uri == null) + throw new CmsException("URI cannot be null"); + try { + return new URI(uri); + } catch (URISyntaxException e) { + throw new CmsException("Dadly formatted URI " + uri, e); + } + } + + private KernelUtils() { }