X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-ssh%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fssh%2Fosgi%2FNetconfSSHActivator.java;h=fa87b73fad2b10bc977f0d88134c1fe21f5fb676;hp=b871d19db8f062d0dbca93cc18ce6c3c6e09ba2d;hb=f1ca77023bf3fc98df26214d32360136b196e464;hpb=531621aac4cff9d39cbd8668a53bdeba8a0e6d81 diff --git a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java index b871d19db8..fa87b73fad 100644 --- a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java +++ b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java @@ -19,10 +19,10 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadFactory; -import org.apache.commons.io.FilenameUtils; import org.apache.sshd.common.util.ThreadUtils; import org.apache.sshd.server.keyprovider.PEMGeneratorHostKeyProvider; import org.opendaylight.controller.netconf.ssh.SshProxyServer; +import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder; import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil; import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil.InfixProp; import org.osgi.framework.BundleActivator; @@ -31,11 +31,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class NetconfSSHActivator implements BundleActivator { - private static final Logger logger = LoggerFactory.getLogger(NetconfSSHActivator.class); + private static final Logger LOG = LoggerFactory.getLogger(NetconfSSHActivator.class); private static final java.lang.String ALGORITHM = "RSA"; private static final int KEY_SIZE = 4096; public static final int POOL_SIZE = 8; + private static final int DEFAULT_IDLE_TIMEOUT = Integer.MAX_VALUE; private ScheduledExecutorService minaTimerExecutor; private NioEventLoopGroup clientGroup; @@ -83,24 +84,32 @@ public class NetconfSSHActivator implements BundleActivator { private SshProxyServer startSSHServer(final BundleContext bundleContext) throws IOException { final Optional maybeSshSocketAddress = NetconfConfigUtil.extractNetconfServerAddress(bundleContext, InfixProp.ssh); - if (maybeSshSocketAddress.isPresent() == false) { - logger.trace("SSH bridge not configured"); + if (!maybeSshSocketAddress.isPresent()) { + LOG.trace("SSH bridge not configured"); return null; } final InetSocketAddress sshSocketAddress = maybeSshSocketAddress.get(); - logger.trace("Starting netconf SSH bridge at {}", sshSocketAddress); + LOG.trace("Starting netconf SSH bridge at {}", sshSocketAddress); final LocalAddress localAddress = NetconfConfigUtil.getNetconfLocalAddress(); authProviderTracker = new AuthProviderTracker(bundleContext); - final String path = FilenameUtils.separatorsToSystem(NetconfConfigUtil.getPrivateKeyPath(bundleContext)); + final String path = NetconfConfigUtil.getPrivateKeyPath(bundleContext); + checkState(!Strings.isNullOrEmpty(path), "Path to ssh private key is blank. Reconfigure %s", NetconfConfigUtil.getPrivateKeyKey()); final SshProxyServer sshProxyServer = new SshProxyServer(minaTimerExecutor, clientGroup, nioExecutor); - sshProxyServer.bind(sshSocketAddress, localAddress, authProviderTracker, new PEMGeneratorHostKeyProvider(path, ALGORITHM, KEY_SIZE)); + sshProxyServer.bind( + new SshProxyServerConfigurationBuilder() + .setBindingAddress(sshSocketAddress) + .setLocalAddress(localAddress) + .setAuthenticator(authProviderTracker) + .setKeyPairProvider(new PEMGeneratorHostKeyProvider(path, ALGORITHM, KEY_SIZE)) + .setIdleTimeout(DEFAULT_IDLE_TIMEOUT) + .createSshProxyServerConfiguration()); return sshProxyServer; }