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 nullkpExtractor - 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