@FunctionalInterface
public interface ClientIdentityProvider
| Modifier and Type | Method and Description |
|---|---|
java.lang.Iterable<java.security.KeyPair> |
getClientIdentities(SessionContext session)
Provides a
KeyPair representing the client identity |
static java.util.Iterator<java.security.KeyPair> |
lazyKeysIterator(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)
Wraps several
ClientIdentityProvider into a KeyPair Iterator that invokes each provider
"lazily" - i.e., only when Iterator.hasNext() is invoked. |
static java.lang.Iterable<java.security.KeyPair> |
lazyKeysLoader(java.lang.Iterable<? 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)
Wraps several
ClientIdentityProvider into a KeyPair Iterable that invokes each provider
"lazily" - i.e., only when Iterator.hasNext() is invoked. |
static ClientIdentityProvider |
of(java.security.KeyPair kp)
Wraps a
KeyPair into a ClientIdentityProvider that simply returns this value as it
getClientIdentities(SessionContext). |
java.lang.Iterable<java.security.KeyPair> getClientIdentities(SessionContext session) throws java.io.IOException, java.security.GeneralSecurityException
KeyPair representing the client identitysession - The SessionContext for invoking this load command - may be null
if not invoked within a session context (e.g., offline tool).null/empty if no currently available
identity from this provider. Note: the provider may return a
different value every time this method is called - e.g., if it is
(re-)loading contents from a file.java.io.IOException - If failed to load the identityjava.security.GeneralSecurityException - If failed to parse the identitystatic ClientIdentityProvider of(java.security.KeyPair kp)
KeyPair into a ClientIdentityProvider that simply returns this value as it
getClientIdentities(SessionContext).kp - The KeyPair instance (including null)static java.lang.Iterable<java.security.KeyPair> lazyKeysLoader(java.lang.Iterable<? 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)
ClientIdentityProvider into a KeyPair Iterable 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.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.Iterable. Note: a new Iterator instance is returned
on each Iterable.iterator() call - i.e., any encrypted private key may require the
user to re-enter the relevant password. If the default ClientIdentityFileWatcher is
used, this is not a problem since it caches the decoded result (unless the file has changed).static java.util.Iterator<java.security.KeyPair> lazyKeysIterator(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)
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.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.Iterator