Logback: the reliable, generic, fast and flexible logging framework. Copyright (C) 1999-2015, QOS.ch. All rights reserved. This program and the accompanying materials are dual-licensed under either the terms of the Eclipse Public License v1.0 as published by the Eclipse Foundation or (per the licensee's choosing) under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.
/** * Logback: the reliable, generic, fast and flexible logging framework. * Copyright (C) 1999-2015, QOS.ch. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. */
package ch.qos.logback.core.net.ssl; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import javax.net.SocketFactory; import javax.net.ssl.SSLParameters; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory;
An SSLSocketFactory that configures SSL parameters (those covered by SSLParameters) on each newly created socket.

When any of this factory's createSocket methods are invoked, it calls on a SSLSocketFactory delegate to create the socket, and then sets the SSL parameters of the socket (using the provided configuration) before returning the socket to the caller.

Author:Carl Harris
/** * An {@link SSLSocketFactory} that configures SSL parameters * (those covered by {@link SSLParameters}) on each newly created socket. * <p> * When any of this factory's {@code createSocket} methods are invoked, it * calls on a {@link SSLSocketFactory} delegate to create the socket, and * then sets the SSL parameters of the socket (using the provided * configuration) before returning the socket to the caller. * * @author Carl Harris */
public class ConfigurableSSLSocketFactory extends SocketFactory { private final SSLParametersConfiguration parameters; private final SSLSocketFactory delegate;
Creates a new factory.
Params:
  • parameters – parameters that will be configured on each socket created by the factory
  • delegate – socket factory that will be called upon to create sockets before configuration
/** * Creates a new factory. * @param parameters parameters that will be configured on each * socket created by the factory * @param delegate socket factory that will be called upon to create * sockets before configuration */
public ConfigurableSSLSocketFactory(SSLParametersConfiguration parameters, SSLSocketFactory delegate) { this.parameters = parameters; this.delegate = delegate; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException { SSLSocket socket = (SSLSocket) delegate.createSocket(address, port, localAddress, localPort); parameters.configure(new SSLConfigurableSocket(socket)); return socket; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public Socket createSocket(InetAddress host, int port) throws IOException { SSLSocket socket = (SSLSocket) delegate.createSocket(host, port); parameters.configure(new SSLConfigurableSocket(socket)); return socket; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException { SSLSocket socket = (SSLSocket) delegate.createSocket(host, port, localHost, localPort); parameters.configure(new SSLConfigurableSocket(socket)); return socket; }
{@inheritDoc}
/** * {@inheritDoc} */
@Override public Socket createSocket(String host, int port) throws IOException, UnknownHostException { SSLSocket socket = (SSLSocket) delegate.createSocket(host, port); parameters.configure(new SSLConfigurableSocket(socket)); return socket; } }