| | |
| | | |
| | | package org.opends.server.replication.protocol; |
| | | |
| | | import static org.opends.server.loggers.ErrorLogger.logError; |
| | | import static org.opends.messages.ReplicationMessages.*; |
| | | |
| | | import org.opends.messages.Message; |
| | | import org.opends.server.admin.std.server.ReplicationServerCfg; |
| | | import org.opends.server.admin.std.server.ReplicationDomainCfg; |
| | | import org.opends.server.types.DirectoryConfig; |
| | | import org.opends.server.types.CryptoManager; |
| | | import org.opends.server.config.ConfigException; |
| | | |
| | | import javax.net.ssl.SSLException; |
| | | import javax.net.ssl.SSLSocket; |
| | | import javax.net.ssl.SSLContext; |
| | | import javax.net.ssl.SSLSocketFactory; |
| | | import java.util.SortedSet; |
| | | import java.net.Socket; |
| | | import java.net.InetAddress; |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | |
| | | */ |
| | | private String sslCipherSuites[]; |
| | | |
| | | |
| | | /** |
| | | * Create a ReplSessionSecurity instance from the supplied configuration |
| | | * values. |
| | |
| | | SSLContext sslContext = cryptoManager.getSslContext(sslCertNickname); |
| | | SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); |
| | | |
| | | SSLSocket secureSocket = (SSLSocket) |
| | | sslSocketFactory.createSocket(socket, |
| | | SSLSocket secureSocket = (SSLSocket) sslSocketFactory.createSocket(socket, |
| | | socket.getInetAddress().getHostName(), |
| | | socket.getPort(), false); |
| | | secureSocket.setUseClientMode(true); |
| | |
| | | { |
| | | if (useSSL) |
| | | { |
| | | try |
| | | { |
| | | // Create a new SSL context every time to make sure we pick up the |
| | | // latest contents of the trust store. |
| | | CryptoManager cryptoManager = DirectoryConfig.getCryptoManager(); |
| | |
| | | // System.out.println("Principal = " + sslSession.getPeerPrincipal()); |
| | | |
| | | return new TLSSocketSession(socket, secureSocket); |
| | | } catch (SSLException e) |
| | | { |
| | | // This is probably a connection attempt from an unexpected client |
| | | // log that to warn the administrator. |
| | | InetAddress remHost = socket.getInetAddress(); |
| | | Message message = NOTE_SSL_SERVER_CON_ATTEMPT_ERROR.get(remHost. |
| | | getHostName(), remHost.getHostAddress(), e.getLocalizedMessage()); |
| | | logError(message); |
| | | return null; |
| | | } |
| | | else |
| | | } else |
| | | { |
| | | return new SocketSession(socket); |
| | | } |