/** * Creates a "unified" {@link Iterator} of passwords out of the registered * passwords and the extra available ones as a single iterator of passwords * * @param session The {@link ClientSession} - ignored if {@code null} (i.e., empty * iterator returned) * @return The wrapping iterator * @see ClientSession#getRegisteredIdentities() * @see ClientSession#getPasswordIdentityProvider() */ static Iterator<String> passwordIteratorOf(ClientSession session) { return (session == null) ? Collections.<String>emptyIterator() : PasswordIdentityProvider.iteratorOf(session.getRegisteredIdentities(), session.getPasswordIdentityProvider()); } }
/** * Creates a "unified" {@link Iterator} of passwords out of the registered * passwords and the extra available ones as a single iterator of passwords * * @param session The {@link ClientSession} - ignored if {@code null} (i.e., empty * iterator returned) * @return The wrapping iterator * @see ClientSession#getRegisteredIdentities() * @see ClientSession#getPasswordIdentityProvider() */ static Iterator<String> passwordIteratorOf(ClientSession session) { return (session == null) ? Collections.<String>emptyIterator() : PasswordIdentityProvider.iteratorOf(session.getRegisteredIdentities(), session.getPasswordIdentityProvider()); } }
PasswordIdentityProvider passSession = session.getPasswordIdentityProvider(); PasswordIdentityProvider passClient = getPasswordIdentityProvider(); if (passSession == null) {
PasswordIdentityProvider passSession = session.getPasswordIdentityProvider(); PasswordIdentityProvider passClient = getPasswordIdentityProvider(); if (!GenericUtils.isSameReference(passSession, passClient)) {
@Test public void testPasswordIdentityProviderPropagation() throws Exception { try (SshClient client = setupTestClient()) { final List<String> passwords = Collections.singletonList(getCurrentTestName()); final AtomicInteger loadCount = new AtomicInteger(0); PasswordIdentityProvider provider = new PasswordIdentityProvider() { @Override public Iterable<String> loadPasswords() { loadCount.incrementAndGet(); outputDebugMessage("loadPasswords - count=%s", loadCount); return passwords; } }; client.setPasswordIdentityProvider(provider); client.start(); try (ClientSession s = client.connect(getCurrentTestName(), TEST_LOCALHOST, port).verify(7L, TimeUnit.SECONDS).getSession()) { s.auth().verify(11L, TimeUnit.SECONDS); assertEquals("Mismatched load passwords count", 1, loadCount.get()); assertSame("Mismatched passwords identity provider", provider, s.getPasswordIdentityProvider()); } finally { client.stop(); } } }
@Test public void testPasswordIdentityProviderPropagation() throws Exception { try (SshClient client = setupTestClient()) { final List<String> passwords = Collections.singletonList(getCurrentTestName()); final AtomicInteger loadCount = new AtomicInteger(0); PasswordIdentityProvider provider = new PasswordIdentityProvider() { @Override public Iterable<String> loadPasswords() { loadCount.incrementAndGet(); outputDebugMessage("loadPasswords - count=%s", loadCount); return passwords; } }; client.setPasswordIdentityProvider(provider); client.start(); try (ClientSession s = client.connect(getCurrentTestName(), TEST_LOCALHOST, port).verify(7L, TimeUnit.SECONDS).getSession()) { s.auth().verify(11L, TimeUnit.SECONDS); assertEquals("Mismatched load passwords count", 1, loadCount.get()); assertSame("Mismatched passwords identity provider", provider, s.getPasswordIdentityProvider()); } finally { client.stop(); } } }
@Test public void testPasswordIdentityProviderPropagation() throws Exception { try (SshClient client = setupTestClient()) { final List<String> passwords = Collections.singletonList(getCurrentTestName()); final AtomicInteger loadCount = new AtomicInteger(0); PasswordIdentityProvider provider = new PasswordIdentityProvider() { @Override public Iterable<String> loadPasswords() { loadCount.incrementAndGet(); outputDebugMessage("loadPasswords - count=%s", loadCount); return passwords; } }; client.setPasswordIdentityProvider(provider); client.start(); try (ClientSession s = client.connect(getCurrentTestName(), TEST_LOCALHOST, port).verify(7L, TimeUnit.SECONDS).getSession()) { s.auth().verify(11L, TimeUnit.SECONDS); assertEquals("Mismatched load passwords count", 1, loadCount.get()); assertSame("Mismatched passwords identity provider", provider, s.getPasswordIdentityProvider()); } finally { client.stop(); } } }