X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FKernelUtils.java;h=e3bbdb79629d1cd8ed8a9d7837dce0b859a6fc3c;hb=cf53e939cabed54ee2a3074afcf22417fbdf364d;hp=50f7ef3227fac04c5ac7b2c0027f80fef108f568;hpb=972528f4de2d00690362c01d3ce843ca9cd10250;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 50f7ef322..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 @@ -1,14 +1,10 @@ package org.argeo.cms.internal.kernel; -import static org.argeo.cms.internal.kernel.KernelConstants.WEBDAV_PRIVATE; -import static org.argeo.cms.internal.kernel.KernelConstants.WEBDAV_PUBLIC; - import java.io.File; import java.io.IOException; -import java.net.MalformedURLException; +import java.io.PrintStream; import java.net.URI; import java.net.URISyntaxException; -import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; import java.security.PrivilegedAction; @@ -16,9 +12,9 @@ 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.Node; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; @@ -29,8 +25,7 @@ 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.jcr.ArgeoJcrConstants; +import org.argeo.node.NodeConstants; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; @@ -120,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) { @@ -155,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); @@ -165,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,59 +217,7 @@ class KernelUtils implements KernelConstants { } } - // DATA - public static StringBuilder getServerBaseUrl(HttpServletRequest request) { - try { - URL url = new URL(request.getRequestURL().toString()); - StringBuilder buf = new StringBuilder(); - buf.append(url.getProtocol()).append("://").append(url.getHost()); - if (url.getPort() != -1) - buf.append(':').append(url.getPort()); - return buf; - } catch (MalformedURLException e) { - throw new CmsException("Cannot extract server base URL from " + request.getRequestURL(), e); - } - } - public static String getDataUrl(Node node, HttpServletRequest request) throws RepositoryException { - try { - StringBuilder buf = getServerBaseUrl(request); - buf.append(getDataPath(node)); - return new URL(buf.toString()).toString(); - } catch (MalformedURLException e) { - throw new CmsException("Cannot build data URL for " + node, e); - } - } - - public static String getDataPath(Node node) throws RepositoryException { - assert node != null; - String userId = node.getSession().getUserID(); -// if (log.isTraceEnabled()) -// log.trace(userId + " : " + node.getPath()); - StringBuilder buf = new StringBuilder(); - boolean isAnonymous = userId.equalsIgnoreCase(AuthConstants.ROLE_ANONYMOUS); - if (isAnonymous) - buf.append(WEBDAV_PUBLIC); - else - buf.append(WEBDAV_PRIVATE); - // TODO convey repo alias vie repository properties - return buf.append('/').append(ArgeoJcrConstants.ALIAS_NODE).append('/').append(node.getSession().getWorkspace().getName()) - .append(node.getPath()).toString(); - } - - public static String getCanonicalUrl(Node node, HttpServletRequest request) throws RepositoryException { - try { - StringBuilder buf = getServerBaseUrl(request); - buf.append('/').append('!').append(node.getPath()); - return new URL(buf.toString()).toString(); - } catch (MalformedURLException e) { - throw new CmsException("Cannot build data URL for " + node, e); - } - // return request.getRequestURL().append('!').append(node.getPath()) - // .toString(); - } - - private KernelUtils() { }