public class LazyClientIdentityIterator
extends java.lang.Object
implements java.util.Iterator<java.security.KeyPair>
ClientIdentityProvider
into a KeyPair
Iterator
that invokes each provider "lazily" - i.e.,
only when Iterator.hasNext()
is invoked. This prevents password
protected private keys to be decrypted until they are actually needed.Modifier and Type | Field and Description |
---|---|
protected java.util.Iterator<? extends java.security.KeyPair> |
currentIdentities |
protected java.security.KeyPair |
currentPair |
private java.util.function.Predicate<? super java.security.KeyPair> |
filter |
protected boolean |
finished |
private java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> |
kpExtractor |
private java.util.Iterator<? extends ClientIdentityProvider> |
providers |
Constructor and Description |
---|
LazyClientIdentityIterator(java.util.Iterator<? extends ClientIdentityProvider> providers,
java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> kpExtractor,
java.util.function.Predicate<? super java.security.KeyPair> filter) |
Modifier and Type | Method and Description |
---|---|
java.util.function.Predicate<? super java.security.KeyPair> |
getFilter() |
java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> |
getIdentitiesExtractor() |
java.util.Iterator<? extends ClientIdentityProvider> |
getProviders() |
boolean |
hasNext() |
java.security.KeyPair |
next() |
java.lang.String |
toString() |
protected boolean finished
protected java.util.Iterator<? extends java.security.KeyPair> currentIdentities
protected java.security.KeyPair currentPair
private final java.util.Iterator<? extends ClientIdentityProvider> providers
private final java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> kpExtractor
private final java.util.function.Predicate<? super java.security.KeyPair> filter
public LazyClientIdentityIterator(java.util.Iterator<? extends ClientIdentityProvider> providers, java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> kpExtractor, java.util.function.Predicate<? super java.security.KeyPair> filter)
providers
- The providers - ignored if null
kpExtractor
- The (never null
) extractor of the KeyPair
from the ClientIdentityProvider
argument. If returned pair is
null
then next provider is queried.filter
- Any further filter to apply on (non-null
) key pairs
before returning it as the Iterator.next()
result.public java.util.Iterator<? extends ClientIdentityProvider> getProviders()
public java.util.function.Function<? super ClientIdentityProvider,? extends java.lang.Iterable<? extends java.security.KeyPair>> getIdentitiesExtractor()
public java.util.function.Predicate<? super java.security.KeyPair> getFilter()
public boolean hasNext()
hasNext
in interface java.util.Iterator<java.security.KeyPair>
public java.security.KeyPair next()
next
in interface java.util.Iterator<java.security.KeyPair>
public java.lang.String toString()
toString
in class java.lang.Object