X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.ext.equinox.jetty%2Fsrc%2Forg%2Fargeo%2Fequinox%2Fjetty%2FCmsJettyCustomizer.java;fp=eclipse%2Forg.argeo.ext.equinox.jetty%2Fsrc%2Forg%2Fargeo%2Fequinox%2Fjetty%2FCmsJettyCustomizer.java;h=e34049506b553ee3bd6948dab80de0092dc20c7f;hb=8302ed5e76967f1d618b59ebe4ae11223e5037c3;hp=9d15143d790a56a4c4eb1981d530bd2ff835940f;hpb=0d10cb454d6c3c98e671dafc11600c884dce8d75;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/CmsJettyCustomizer.java b/eclipse/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/CmsJettyCustomizer.java index 9d15143d7..e34049506 100644 --- a/eclipse/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/CmsJettyCustomizer.java +++ b/eclipse/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/CmsJettyCustomizer.java @@ -7,7 +7,11 @@ import javax.websocket.DeploymentException; import javax.websocket.server.ServerContainer; import org.eclipse.equinox.http.jetty.JettyCustomizer; +import org.eclipse.jetty.server.ConnectionFactory; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.SslConnectionFactory; import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer; import org.eclipse.jetty.websocket.javax.server.config.JavaxWebSocketServletContainerInitializer.Configurator; import org.osgi.framework.BundleContext; @@ -15,6 +19,10 @@ import org.osgi.framework.FrameworkUtil; /** Customises the Jetty HTTP server. */ public class CmsJettyCustomizer extends JettyCustomizer { + static final String SSL_TRUSTSTORE = "ssl.truststore"; + static final String SSL_TRUSTSTOREPASSWORD = "ssl.truststorepassword"; + static final String SSL_TRUSTSTORETYPE = "ssl.truststoretype"; + private BundleContext bc = FrameworkUtil.getBundle(CmsJettyCustomizer.class).getBundleContext(); public final static String WEBSOCKET_ENABLED = "argeo.websocket.enabled"; @@ -37,4 +45,20 @@ public class CmsJettyCustomizer extends JettyCustomizer { return super.customizeContext(context, settings); } + + @Override + public Object customizeHttpsConnector(Object connector, Dictionary settings) { + ServerConnector httpsConnector = (ServerConnector) connector; + for (ConnectionFactory connectionFactory : httpsConnector.getConnectionFactories()) { + if (connectionFactory instanceof SslConnectionFactory) { + SslContextFactory.Server sslConnectionFactory = ((SslConnectionFactory) connectionFactory) + .getSslContextFactory(); + sslConnectionFactory.setTrustStorePath((String) settings.get(SSL_TRUSTSTORE)); + sslConnectionFactory.setTrustStoreType((String) settings.get(SSL_TRUSTSTORETYPE)); + sslConnectionFactory.setTrustStorePassword((String) settings.get(SSL_TRUSTSTOREPASSWORD)); + } + } + return super.customizeHttpsConnector(connector, settings); + } + }