Class LazyClientIdentityIterator
- java.lang.Object
-
- org.apache.sshd.client.config.keys.LazyClientIdentityIterator
-
- All Implemented Interfaces:
java.util.Iterator<java.security.KeyPair>
public class LazyClientIdentityIterator extends java.lang.Object implements java.util.Iterator<java.security.KeyPair>
Wraps severalClientIdentityProvider
into aKeyPair
Iterator
that invokes each provider "lazily" - i.e., only whenIterator.hasNext()
is invoked. This prevents password protected private keys to be decrypted until they are actually needed.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Iterator<java.security.KeyPair>
currentIdentities
protected java.security.KeyPair
currentPair
private java.util.function.Predicate<java.security.KeyPair>
filter
protected boolean
finished
private java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>>
kpExtractor
private java.util.Iterator<? extends ClientIdentityProvider>
providers
-
Constructor Summary
Constructors Constructor Description LazyClientIdentityIterator(java.util.Iterator<? extends ClientIdentityProvider> providers, java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>> kpExtractor, java.util.function.Predicate<java.security.KeyPair> filter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.function.Predicate<java.security.KeyPair>
getFilter()
java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>>
getIdentitiesExtractor()
java.util.Iterator<? extends ClientIdentityProvider>
getProviders()
boolean
hasNext()
java.security.KeyPair
next()
java.lang.String
toString()
-
-
-
Field Detail
-
finished
protected boolean finished
-
currentIdentities
protected java.util.Iterator<java.security.KeyPair> currentIdentities
-
currentPair
protected java.security.KeyPair currentPair
-
providers
private final java.util.Iterator<? extends ClientIdentityProvider> providers
-
kpExtractor
private final java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>> kpExtractor
-
filter
private final java.util.function.Predicate<java.security.KeyPair> filter
-
-
Constructor Detail
-
LazyClientIdentityIterator
public LazyClientIdentityIterator(java.util.Iterator<? extends ClientIdentityProvider> providers, java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>> kpExtractor, java.util.function.Predicate<java.security.KeyPair> filter)
- Parameters:
providers
- The providers - ignored ifnull
kpExtractor
- The (nevernull
) extractor of theKeyPair
from theClientIdentityProvider
argument. If returned pair isnull
then next provider is queried.filter
- Any further filter to apply on (non-null
) key pairs before returning it as theIterator.next()
result.
-
-
Method Detail
-
getProviders
public java.util.Iterator<? extends ClientIdentityProvider> getProviders()
-
getIdentitiesExtractor
public java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<java.security.KeyPair>> getIdentitiesExtractor()
-
getFilter
public java.util.function.Predicate<java.security.KeyPair> getFilter()
-
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interfacejava.util.Iterator<java.security.KeyPair>
-
next
public java.security.KeyPair next()
- Specified by:
next
in interfacejava.util.Iterator<java.security.KeyPair>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-