com.mirth.connect.connectors.http.DefaultHttpConfiguration.java Source code

Java tutorial

Introduction

Here is the source code for com.mirth.connect.connectors.http.DefaultHttpConfiguration.java

Source

/*
 * Copyright (c) Mirth Corporation. All rights reserved.
 * 
 * http://www.mirthcorp.com
 * 
 * The software in this package is published under the terms of the MPL license a copy of which has
 * been included with this distribution in the LICENSE.txt file.
 */

package com.mirth.connect.connectors.http;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletRequest;

import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.ssl.SSLContexts;
import org.eclipse.jetty.server.ServerConnector;

import com.mirth.connect.donkey.model.channel.ConnectorPluginProperties;
import com.mirth.connect.donkey.server.channel.Connector;
import com.mirth.connect.server.controllers.ConfigurationController;
import com.mirth.connect.server.controllers.ControllerFactory;
import com.mirth.connect.util.MirthSSLUtil;

public class DefaultHttpConfiguration implements HttpConfiguration {

    private ConfigurationController configurationController = ControllerFactory.getFactory()
            .createConfigurationController();

    @Override
    public void configureConnectorDeploy(Connector connector) throws Exception {
        if (connector instanceof HttpDispatcher) {
            configureSocketFactoryRegistry(null, ((HttpDispatcher) connector).getSocketFactoryRegistry());
        }
    }

    @Override
    public void configureConnectorUndeploy(Connector connector) {
    }

    @Override
    public void configureReceiver(HttpReceiver connector) throws Exception {
        ServerConnector listener = new ServerConnector(connector.getServer());
        listener.setHost(connector.getHost());
        listener.setPort(connector.getPort());
        listener.setIdleTimeout(connector.getTimeout());
        connector.getServer().addConnector(listener);
    }

    @Override
    public void configureDispatcher(HttpDispatcher connector, HttpDispatcherProperties connectorProperties)
            throws Exception {
    }

    @Override
    public void configureSocketFactoryRegistry(ConnectorPluginProperties properties,
            RegistryBuilder<ConnectionSocketFactory> registry) throws Exception {
        String[] enabledProtocols = MirthSSLUtil
                .getEnabledHttpsProtocols(configurationController.getHttpsClientProtocols());
        String[] enabledCipherSuites = MirthSSLUtil
                .getEnabledHttpsCipherSuites(configurationController.getHttpsCipherSuites());
        SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
                SSLContexts.createSystemDefault(), enabledProtocols, enabledCipherSuites,
                NoopHostnameVerifier.INSTANCE);
        registry.register("https", sslConnectionSocketFactory);
    }

    @Override
    public Map<String, Object> getRequestInformation(ServletRequest request) {
        return new HashMap<String, Object>();
    }
}