package org.opendaylight.controller.netconf.osgi;
import com.google.common.base.Optional;
+import java.io.FileInputStream;
import java.net.InetSocketAddress;
import org.opendaylight.controller.netconf.ssh.NetconfSSHServer;
import org.opendaylight.controller.netconf.ssh.authentication.AuthProvider;
ServiceTrackerCustomizer<IUserManager, IUserManager> customizer = new ServiceTrackerCustomizer<IUserManager, IUserManager>(){
@Override
public IUserManager addingService(ServiceReference<IUserManager> reference) {
- logger.info("Service IUserManager added, let there be SSH bridge.");
+ logger.info("Service {} added, let there be SSH bridge.", reference);
iUserManager = context.getService(reference);
try {
onUserManagerFound(iUserManager);
}
@Override
public void modifiedService(ServiceReference<IUserManager> reference, IUserManager service) {
- logger.info("Replacing modified service IUserManager in netconf SSH.");
+ logger.info("Replacing modified service {} in netconf SSH.", reference);
server.addUserManagerService(service);
}
@Override
public void removedService(ServiceReference<IUserManager> reference, IUserManager service) {
- logger.info("Removing service IUserManager from netconf SSH. " +
- "SSH won't authenticate users until IUserManeger service will be started.");
+ logger.info("Removing service {} from netconf SSH. " +
+ "SSH won't authenticate users until IUserManeger service will be started.", reference);
removeUserManagerService();
}
};
EXCEPTION_MESSAGE, true);
if (sshSocketAddressOptional.isPresent()){
- AuthProvider authProvider = new AuthProvider(iUserManager);
- this.server = NetconfSSHServer.start(sshSocketAddressOptional.get().getPort(),tcpSocketAddress,authProvider);
+ String path = NetconfConfigUtil.getPrivateKeyPath(context);
+ path = path.replace("\\", "/");
+ if (path.equals("")){
+ throw new Exception("Missing netconf.ssh.pk.path key in configuration file.");
+ }
+
+ try (FileInputStream fis = new FileInputStream(path)){
+ AuthProvider authProvider = new AuthProvider(iUserManager,fis);
+ this.server = NetconfSSHServer.start(sshSocketAddressOptional.get().getPort(),tcpSocketAddress,authProvider);
+ }
+
Thread serverThread = new Thread(server,"netconf SSH server thread");
serverThread.setDaemon(true);
serverThread.start();