X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FInitUtils.java;h=ef6a267c6e85150c1e566905412ec8066436537d;hb=b01dfb98caa1b8b8ab8da15226bc023714b6048f;hp=8a22b480f0106f22861f4bfe2a63695ef54054d0;hpb=e61a7a2dbff5e17fbf1c6c8bbd7fa687935d2897;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java index 8a22b480f..ef6a267c6 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/InitUtils.java @@ -68,6 +68,8 @@ class InitUtils { /// TODO make it more generic String httpHost = getFrameworkProp(HttpConstants.JETTY_PROPERTY_PREFIX + HttpConstants.HTTP_HOST); String httpsHost = getFrameworkProp(HttpConstants.JETTY_PROPERTY_PREFIX + HttpConstants.HTTPS_HOST); + String webSocketEnabled = getFrameworkProp( + HttpConstants.JETTY_PROPERTY_PREFIX + HttpConstants.WEB_SOCKET_ENABLED); final Hashtable props = new Hashtable(); // try { @@ -90,12 +92,21 @@ class InitUtils { props.put(HttpConstants.SSL_KEYSTORE, keyStorePath.toString()); props.put(HttpConstants.SSL_PASSWORD, keyStorePassword); props.put(HttpConstants.SSL_WANTCLIENTAUTH, true); + String needClientAuth = getFrameworkProp( + HttpConstants.JETTY_PROPERTY_PREFIX + HttpConstants.SSL_NEEDCLIENTAUTH); + if (needClientAuth != null) { + props.put(HttpConstants.SSL_NEEDCLIENTAUTH, Boolean.parseBoolean(needClientAuth)); + } } if (httpHost != null) props.put(HttpConstants.HTTP_HOST, httpHost); if (httpsHost != null) props.put(HttpConstants.HTTPS_HOST, httpHost); + if (webSocketEnabled != null) + if (webSocketEnabled.equals("true")) + props.put(HttpConstants.WEB_SOCKET_ENABLED, true); + props.put(NodeConstants.CN, NodeConstants.DEFAULT); } return props; @@ -123,18 +134,38 @@ class InitUtils { } uris.add(nodeRolesUri); + // node tokens + String nodeTokensUri = getFrameworkProp(NodeConstants.TOKENS_URI); + String baseNodeTokensDn = NodeConstants.TOKENS_BASEDN; + if (nodeTokensUri == null) { + nodeTokensUri = baseNodeTokensDn + ".ldif"; + File nodeRolesFile = new File(nodeBaseDir, nodeRolesUri); + if (!nodeRolesFile.exists()) + try { + FileUtils.copyInputStreamToFile(InitUtils.class.getResourceAsStream(baseNodeTokensDn + ".ldif"), + nodeRolesFile); + } catch (IOException e) { + throw new CmsException("Cannot copy demo resource", e); + } + // nodeRolesUri = nodeRolesFile.toURI().toString(); + } + uris.add(nodeTokensUri); + // Business roles String userAdminUris = getFrameworkProp(NodeConstants.USERADMIN_URIS); if (userAdminUris == null) { String demoBaseDn = "dc=example,dc=com"; userAdminUris = demoBaseDn + ".ldif"; File businessRolesFile = new File(nodeBaseDir, userAdminUris); + File systemRolesFile = new File(nodeBaseDir, "ou=roles,ou=node.ldif"); if (!businessRolesFile.exists()) try { FileUtils.copyInputStreamToFile(InitUtils.class.getResourceAsStream(demoBaseDn + ".ldif"), businessRolesFile); + FileUtils.copyInputStreamToFile( + InitUtils.class.getResourceAsStream("example-ou=roles,ou=node.ldif"), systemRolesFile); } catch (IOException e) { - throw new CmsException("Cannot copy demo resource", e); + throw new CmsException("Cannot copy demo resources", e); } // userAdminUris = businessRolesFile.toURI().toString(); log.warn("## DEV Using dummy base DN " + demoBaseDn);