use of org.opendaylight.netconf.nettyutil.handler.ssh.authentication.LoginPasswordHandler in project netconf by opendaylight.
the class TestingNetconfClient method main.
public static void main(final String[] args) throws Exception {
HashedWheelTimer hashedWheelTimer = new HashedWheelTimer();
NioEventLoopGroup nettyGroup = new NioEventLoopGroup();
NetconfClientDispatcherImpl netconfClientDispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, hashedWheelTimer);
LoginPasswordHandler authHandler = new LoginPasswordHandler("admin", "admin");
TestingNetconfClient client = new TestingNetconfClient("client", netconfClientDispatcher, getClientConfig("127.0.0.1", 1830, true, Optional.of(authHandler)));
System.console().writer().println(client.getCapabilities());
}
use of org.opendaylight.netconf.nettyutil.handler.ssh.authentication.LoginPasswordHandler in project netconf by opendaylight.
the class NetconfDeviceCommunicatorTest method testNetconfDeviceReconnectInCommunicator.
/**
* Test whether reconnect is scheduled properly.
*/
@Test
public void testNetconfDeviceReconnectInCommunicator() {
final RemoteDevice<NetconfSessionPreferences, NetconfMessage, NetconfDeviceCommunicator> device = mock(RemoteDevice.class);
final TimedReconnectStrategy timedReconnectStrategy = new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, 10000, 0, 1.0, null, 100L, null);
final ReconnectStrategy reconnectStrategy = spy(new ReconnectStrategy() {
@Override
@Deprecated
public int getConnectTimeout() throws Exception {
return timedReconnectStrategy.getConnectTimeout();
}
@Override
@Deprecated
public Future<Void> scheduleReconnect(final Throwable cause) {
return timedReconnectStrategy.scheduleReconnect(cause);
}
@Override
@Deprecated
public void reconnectSuccessful() {
timedReconnectStrategy.reconnectSuccessful();
}
});
final EventLoopGroup group = new NioEventLoopGroup();
final Timer time = new HashedWheelTimer();
try {
final NetconfDeviceCommunicator listener = new NetconfDeviceCommunicator(new RemoteDeviceId("test", InetSocketAddress.createUnresolved("localhost", 22)), device, 10);
final NetconfReconnectingClientConfiguration cfg = NetconfReconnectingClientConfigurationBuilder.create().withAddress(new InetSocketAddress("localhost", 65000)).withReconnectStrategy(reconnectStrategy).withConnectStrategyFactory(() -> reconnectStrategy).withAuthHandler(new LoginPasswordHandler("admin", "admin")).withConnectionTimeoutMillis(10000).withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH).withSessionListener(listener).build();
listener.initializeRemoteConnection(new NetconfClientDispatcherImpl(group, group, time), cfg);
verify(reconnectStrategy, timeout(TimeUnit.MINUTES.toMillis(4)).times(101)).scheduleReconnect(any(Throwable.class));
} finally {
time.stop();
group.shutdownGracefully();
}
}
use of org.opendaylight.netconf.nettyutil.handler.ssh.authentication.LoginPasswordHandler in project netconf by opendaylight.
the class StressClientCallable method getNetconfClientConfiguration.
private static NetconfClientConfiguration getNetconfClientConfiguration(final Parameters params, final NetconfDeviceCommunicator sessionListener) {
final NetconfClientConfigurationBuilder netconfClientConfigurationBuilder = NetconfClientConfigurationBuilder.create();
netconfClientConfigurationBuilder.withSessionListener(sessionListener);
netconfClientConfigurationBuilder.withAddress(params.getInetAddress());
if (params.tcpHeader != null) {
final String header = params.tcpHeader.replaceAll("\"", "").trim() + "\n";
netconfClientConfigurationBuilder.withAdditionalHeader(new NetconfHelloMessageAdditionalHeader(null, null, null, null, null) {
@Override
public String toFormattedString() {
LOG.debug("Sending TCP header {}", header);
return header;
}
});
}
netconfClientConfigurationBuilder.withProtocol(params.ssh ? NetconfClientConfiguration.NetconfClientProtocol.SSH : NetconfClientConfiguration.NetconfClientProtocol.TCP);
netconfClientConfigurationBuilder.withAuthHandler(new LoginPasswordHandler(params.username, params.password));
netconfClientConfigurationBuilder.withConnectionTimeoutMillis(20000L);
netconfClientConfigurationBuilder.withReconnectStrategy(new NeverReconnectStrategy(GlobalEventExecutor.INSTANCE, 5000));
return netconfClientConfigurationBuilder.build();
}
use of org.opendaylight.netconf.nettyutil.handler.ssh.authentication.LoginPasswordHandler in project netconf by opendaylight.
the class SSHTest method connectClient.
public EchoClientHandler connectClient(final InetSocketAddress address) {
final EchoClientHandler echoClientHandler = new EchoClientHandler();
final ChannelInitializer<NioSocketChannel> channelInitializer = new ChannelInitializer<>() {
@Override
public void initChannel(final NioSocketChannel ch) throws Exception {
ch.pipeline().addFirst(AsyncSshHandler.createForNetconfSubsystem(new LoginPasswordHandler("a", "a")));
ch.pipeline().addLast(echoClientHandler);
}
};
final Bootstrap b = new Bootstrap();
b.group(nettyGroup).channel(NioSocketChannel.class).handler(channelInitializer);
// Start the client.
b.connect(address).addListener(echoClientHandler);
return echoClientHandler;
}
Aggregations