Top Methods
org.apache.sshd.client.config.keys

public Interface ClientIdentityProvider

Known Direct Implementers
org.apache.sshd.client.config.keys.ClientIdentityFileWatcher
Annotations
@FunctionalInterface
Imports
java.io.IOException, java.security.GeneralSecurityException, .KeyPair, java.util.Collections, .Iterator, .Objects, java.util.function.Function, .Predicate, org.apache.sshd.common.session.SessionContext

Author
Apache MINA SSHD Project

Method Summary

Modifier and TypeMethod and Description
public Iterable<KeyPair>

Returns:

The client identities - may be 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.

getClientIdentities
(SessionContext
The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool).
session
)

Provides a KeyPair representing the client identity

public static Iterator<KeyPair>

Returns:

The wrapper Iterator
lazyKeysIterator
(Iterator<? extends ClientIdentityProvider>
The providers - ignored if null
providers
,
Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>>
The (never null) extractor of the KeyPair from the ClientIdentityProvider argument. If returned pair is null then next provider is queried.
kpExtractor
,
Predicate<KeyPair>
Any further filter to apply on (non-null) key pairs before returning it as the Iterator#next() result.
filter
)

Wraps several ClientIdentityProvider into a KeyPair Iterator that invokes each provider "lazily" - i.e., only when Iterator#hasNext() is invoked.

public static Iterable<KeyPair>

Returns:

The wrapper 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).

lazyKeysLoader
(Iterable<? extends ClientIdentityProvider>
The providers - ignored if null
providers
,
Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>>
The (never null) extractor of the KeyPair from the ClientIdentityProvider argument. If returned pair is null then next provider is queried.
kpExtractor
,
Predicate<KeyPair>
Any further filter to apply on (non-null) key pairs before returning it as the Iterator#next() result.
filter
)

Wraps several ClientIdentityProvider into a KeyPair Iterable that invokes each provider "lazily" - i.e., only when Iterator#hasNext() is invoked.

public static ClientIdentityProvider

Returns:

The wrapping provider
of
(KeyPair
The KeyPair instance (including null)
kp
)

Wraps a KeyPair into a ClientIdentityProvider that simply returns this value as it getClientIdentities(SessionContext).

Method Detail

getClientIdentitiesback to summary
public Iterable<KeyPair> getClientIdentities(SessionContext session) throws IOException, GeneralSecurityException

Provides a KeyPair representing the client identity

Parameters
session:SessionContext

The SessionContext for invoking this load command - may be null if not invoked within a session context (e.g., offline tool).

Returns:Iterable<KeyPair>

The client identities - may be 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.

Exceptions
IOException:
If failed to load the identity
GeneralSecurityException:
If failed to parse the identity
lazyKeysIteratorback to summary
public static Iterator<KeyPair> lazyKeysIterator(Iterator<? extends ClientIdentityProvider> providers, Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>> kpExtractor, Predicate<KeyPair> filter)

Wraps several 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.

Parameters
providers:Iterator<? extends ClientIdentityProvider>

The providers - ignored if null

kpExtractor:Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>>

The (never null) extractor of the KeyPair from the ClientIdentityProvider argument. If returned pair is null then next provider is queried.

filter:Predicate<KeyPair>

Any further filter to apply on (non-null) key pairs before returning it as the Iterator#next() result.

Returns:Iterator<KeyPair>

The wrapper Iterator

lazyKeysLoaderback to summary
public static Iterable<KeyPair> lazyKeysLoader(Iterable<? extends ClientIdentityProvider> providers, Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>> kpExtractor, Predicate<KeyPair> filter)

Wraps several 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.

Parameters
providers:Iterable<? extends ClientIdentityProvider>

The providers - ignored if null

kpExtractor:Function<? super ClientIdentityProvider, ? extends Iterable<KeyPair>>

The (never null) extractor of the KeyPair from the ClientIdentityProvider argument. If returned pair is null then next provider is queried.

filter:Predicate<KeyPair>

Any further filter to apply on (non-null) key pairs before returning it as the Iterator#next() result.

Returns:Iterable<KeyPair>

The wrapper 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).

ofback to summary
public static ClientIdentityProvider of(KeyPair kp)

Wraps a KeyPair into a ClientIdentityProvider that simply returns this value as it getClientIdentities(SessionContext).

Parameters
kp:KeyPair

The KeyPair instance (including null)

Returns:ClientIdentityProvider

The wrapping provider