- public static Dictionary<String, Object> getHttpServerConfig(Dictionary<String, Object> provided) {
- String httpPort = getFrameworkProp("org.osgi.service.http.port");
- String httpsPort = getFrameworkProp("org.osgi.service.http.port.secure");
- /// TODO make it more generic
- String httpHost = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.HTTP_HOST);
- String httpsHost = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.HTTPS_HOST);
- String webSocketEnabled = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.WEBSOCKET_ENABLED);
-
- final Hashtable<String, Object> props = new Hashtable<String, Object>();
- // try {
- if (httpPort != null || httpsPort != null) {
- boolean httpEnabled = httpPort != null;
- props.put(InternalHttpConstants.HTTP_ENABLED, httpEnabled);
- boolean httpsEnabled = httpsPort != null;
- props.put(InternalHttpConstants.HTTPS_ENABLED, httpsEnabled);
-
- if (httpEnabled) {
- props.put(InternalHttpConstants.HTTP_PORT, httpPort);
- if (httpHost != null)
- props.put(InternalHttpConstants.HTTP_HOST, httpHost);
- }
-
- if (httpsEnabled) {
- props.put(InternalHttpConstants.HTTPS_PORT, httpsPort);
- if (httpsHost != null)
- props.put(InternalHttpConstants.HTTPS_HOST, httpsHost);
-
- // server certificate
- Path keyStorePath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_KEYSTORE_PATH);
- Path pemKeyPath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_PEM_KEY_PATH);
- Path pemCertPath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_PEM_CERT_PATH);
- String keyStorePasswordStr = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_PASSWORD);
- char[] keyStorePassword;
- if (keyStorePasswordStr == null)
- keyStorePassword = "changeit".toCharArray();
- else
- keyStorePassword = keyStorePasswordStr.toCharArray();
-
- // if PEM files both exists, update the PKCS12 file
- if (Files.exists(pemCertPath) && Files.exists(pemKeyPath)) {
- // TODO check certificate update time? monitor changes?
- KeyStore keyStore = PkiUtils.getKeyStore(keyStorePath, keyStorePassword, PkiUtils.PKCS12);
- try (Reader key = Files.newBufferedReader(pemKeyPath, StandardCharsets.US_ASCII);
- Reader cert = Files.newBufferedReader(pemCertPath, StandardCharsets.US_ASCII);) {
- PkiUtils.loadPem(keyStore, key, keyStorePassword, cert);
- PkiUtils.saveKeyStore(keyStorePath, keyStorePassword, keyStore);
- if (log.isDebugEnabled())
- log.debug("PEM certificate stored in " + keyStorePath);
- } catch (IOException e) {
- log.error("Cannot read PEM files " + pemKeyPath + " and " + pemCertPath, e);
- }
- }
-
- if (!Files.exists(keyStorePath))
- createSelfSignedKeyStore(keyStorePath, keyStorePassword, PkiUtils.PKCS12);
- props.put(InternalHttpConstants.SSL_KEYSTORETYPE, PkiUtils.PKCS12);
- props.put(InternalHttpConstants.SSL_KEYSTORE, keyStorePath.toString());
- props.put(InternalHttpConstants.SSL_PASSWORD, new String(keyStorePassword));
-
-// props.put(InternalHttpConstants.SSL_KEYSTORETYPE, "PKCS11");
-// props.put(InternalHttpConstants.SSL_KEYSTORE, "../../nssdb");
-// props.put(InternalHttpConstants.SSL_PASSWORD, keyStorePassword);
-
- // client certificate authentication
- String wantClientAuth = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_WANTCLIENTAUTH);
- if (wantClientAuth != null)
- props.put(InternalHttpConstants.SSL_WANTCLIENTAUTH, Boolean.parseBoolean(wantClientAuth));
- String needClientAuth = getFrameworkProp(
- InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_NEEDCLIENTAUTH);
- if (needClientAuth != null)
- props.put(InternalHttpConstants.SSL_NEEDCLIENTAUTH, Boolean.parseBoolean(needClientAuth));
- }
-
- // web socket
- if (webSocketEnabled != null && webSocketEnabled.equals("true"))
- props.put(InternalHttpConstants.WEBSOCKET_ENABLED, true);
-
- props.put(CmsConstants.CN, CmsConstants.DEFAULT);
- }
- return props;
- }
+// public static Dictionary<String, Object> getHttpServerConfig(Dictionary<String, Object> provided) {
+// String httpPort = getFrameworkProp("org.osgi.service.http.port");
+// String httpsPort = getFrameworkProp("org.osgi.service.http.port.secure");
+// /// TODO make it more generic
+// String httpHost = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.HTTP_HOST);
+// String httpsHost = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.HTTPS_HOST);
+// String webSocketEnabled = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.WEBSOCKET_ENABLED);
+//
+// final Hashtable<String, Object> props = new Hashtable<String, Object>();
+// // try {
+// if (httpPort != null || httpsPort != null) {
+// boolean httpEnabled = httpPort != null;
+// props.put(InternalHttpConstants.HTTP_ENABLED, httpEnabled);
+// boolean httpsEnabled = httpsPort != null;
+// props.put(InternalHttpConstants.HTTPS_ENABLED, httpsEnabled);
+//
+// if (httpEnabled) {
+// props.put(InternalHttpConstants.HTTP_PORT, httpPort);
+// if (httpHost != null)
+// props.put(InternalHttpConstants.HTTP_HOST, httpHost);
+// }
+//
+// if (httpsEnabled) {
+// props.put(InternalHttpConstants.HTTPS_PORT, httpsPort);
+// if (httpsHost != null)
+// props.put(InternalHttpConstants.HTTPS_HOST, httpsHost);
+//
+// // server certificate
+// Path keyStorePath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_KEYSTORE_PATH);
+// Path pemKeyPath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_PEM_KEY_PATH);
+// Path pemCertPath = KernelUtils.getOsgiInstancePath(KernelConstants.DEFAULT_PEM_CERT_PATH);
+// String keyStorePasswordStr = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_PASSWORD);
+// char[] keyStorePassword;
+// if (keyStorePasswordStr == null)
+// keyStorePassword = "changeit".toCharArray();
+// else
+// keyStorePassword = keyStorePasswordStr.toCharArray();
+//
+// // if PEM files both exists, update the PKCS12 file
+// if (Files.exists(pemCertPath) && Files.exists(pemKeyPath)) {
+// // TODO check certificate update time? monitor changes?
+// KeyStore keyStore = PkiUtils.getKeyStore(keyStorePath, keyStorePassword, PkiUtils.PKCS12);
+// try (Reader key = Files.newBufferedReader(pemKeyPath, StandardCharsets.US_ASCII);
+// Reader cert = Files.newBufferedReader(pemCertPath, StandardCharsets.US_ASCII);) {
+// PkiUtils.loadPem(keyStore, key, keyStorePassword, cert);
+// PkiUtils.saveKeyStore(keyStorePath, keyStorePassword, keyStore);
+// if (log.isDebugEnabled())
+// log.debug("PEM certificate stored in " + keyStorePath);
+// } catch (IOException e) {
+// log.error("Cannot read PEM files " + pemKeyPath + " and " + pemCertPath, e);
+// }
+// }
+//
+// if (!Files.exists(keyStorePath))
+// createSelfSignedKeyStore(keyStorePath, keyStorePassword, PkiUtils.PKCS12);
+// props.put(InternalHttpConstants.SSL_KEYSTORETYPE, PkiUtils.PKCS12);
+// props.put(InternalHttpConstants.SSL_KEYSTORE, keyStorePath.toString());
+// props.put(InternalHttpConstants.SSL_PASSWORD, new String(keyStorePassword));
+//
+//// props.put(InternalHttpConstants.SSL_KEYSTORETYPE, "PKCS11");
+//// props.put(InternalHttpConstants.SSL_KEYSTORE, "../../nssdb");
+//// props.put(InternalHttpConstants.SSL_PASSWORD, keyStorePassword);
+//
+// // client certificate authentication
+// String wantClientAuth = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_WANTCLIENTAUTH);
+// if (wantClientAuth != null)
+// props.put(InternalHttpConstants.SSL_WANTCLIENTAUTH, Boolean.parseBoolean(wantClientAuth));
+// String needClientAuth = getFrameworkProp(
+// InternalHttpConstants.JETTY_PROPERTY_PREFIX + InternalHttpConstants.SSL_NEEDCLIENTAUTH);
+// if (needClientAuth != null)
+// props.put(InternalHttpConstants.SSL_NEEDCLIENTAUTH, Boolean.parseBoolean(needClientAuth));
+// }
+//
+// // web socket
+// if (webSocketEnabled != null && webSocketEnabled.equals("true"))
+// props.put(InternalHttpConstants.WEBSOCKET_ENABLED, true);
+//
+// props.put(CmsConstants.CN, CmsConstants.DEFAULT);
+// }
+// return props;
+// }