+
+ @Test
+ void sshClientWithConfigurator() throws Exception {
+ final ServerFactoryManagerConfigurator serverConfigurator = factoryManager -> {
+ factoryManager.setUserAuthFactories(List.of(new UserAuthPasswordFactory()));
+ factoryManager.setPasswordAuthenticator(
+ (usr, psw, session) -> USERNAME.equals(usr) && PASSWORD.equals(psw));
+ factoryManager.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
+ };
+ final ClientFactoryManagerConfigurator clientConfigurator = factoryManager -> {
+ factoryManager.setPasswordIdentityProvider(PasswordIdentityProvider.wrapPasswords(PASSWORD));
+ factoryManager.setUserAuthFactories(List.of(
+ new org.opendaylight.netconf.shaded.sshd.client.auth.password.UserAuthPasswordFactory()));
+ };
+
+ final var server = serverTransportFactory.listenServer("netconf", serverTransportListener, tcpServerParams,
+ null, serverConfigurator).get(10, TimeUnit.SECONDS);
+ try {
+ final var clientConfig = NetconfClientConfigurationBuilder.create()
+ .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH)
+ .withTcpParameters(tcpClientParams)
+ .withSshParameters(new SshClientParametersBuilder()
+ .setClientIdentity(new ClientIdentityBuilder().setUsername(USERNAME).build()).build())
+ .withSshConfigurator(clientConfigurator)
+ .withSessionListener(sessionListener)
+ .withConnectionTimeoutMillis(10_000)
+ .build();
+ assertNotNull(factory.createClient(clientConfig));
+ verify(serverTransportListener, timeout(10_000L))
+ .onTransportChannelEstablished(any(TransportChannel.class));
+ } finally {
+ server.shutdown().get(1, TimeUnit.SECONDS);
+ }
+ }