All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.nav.sbl.dialogarena.common.jetty.CreateSslConnector Maven / Gradle / Ivy

package no.nav.sbl.dialogarena.common.jetty;

import no.nav.sbl.util.EnvironmentUtils;
import org.eclipse.jetty.http.HttpVersion;
import org.eclipse.jetty.server.*;
import org.eclipse.jetty.util.ssl.SslContextFactory;

import java.util.function.Function;

class CreateSslConnector implements Function {

    private final Server jetty;
    private final HttpConfiguration baseConfiguration;

    CreateSslConnector(Server jetty, HttpConfiguration baseConfiguration) {
        this.jetty = jetty;
        this.baseConfiguration = baseConfiguration;
    }

    @Override
    public ServerConnector apply(Integer sslPort) {

        SslContextFactory factory = new SslContextFactory(true);
        factory.setKeyStorePath(EnvironmentUtils.getRequiredProperty("javax.net.ssl.trustStore"));
        factory.setKeyStorePassword(EnvironmentUtils.getRequiredProperty("javax.net.ssl.trustStorePassword"));

        HttpConfiguration httpsConfiguration = new HttpConfiguration(baseConfiguration);
        httpsConfiguration.setSecureScheme("https");
        httpsConfiguration.setSecurePort(sslPort);
        httpsConfiguration.addCustomizer(new SecureRequestCustomizer());

        ServerConnector sslConnector = new ServerConnector(jetty,
                new SslConnectionFactory(factory, HttpVersion.HTTP_1_1.toString()),
                new HttpConnectionFactory(httpsConfiguration));
        sslConnector.setPort(sslPort);
        return sslConnector;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy