Class ClientIdentityFileWatcher
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.util.io.ModifiableFileWatcher
-
- org.apache.sshd.client.config.keys.ClientIdentityFileWatcher
-
- All Implemented Interfaces:
ClientIdentityLoaderHolder
,ClientIdentityProvider
,FilePasswordProviderHolder
public class ClientIdentityFileWatcher extends ModifiableFileWatcher implements ClientIdentityProvider, ClientIdentityLoaderHolder, FilePasswordProviderHolder
AClientIdentityProvider
that watches a given key file re-loading its contents if it is ever modified, deleted or (re-)created
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicReference<java.lang.Iterable<java.security.KeyPair>>
identitiesHolder
private ClientIdentityLoaderHolder
loaderHolder
private FilePasswordProviderHolder
providerHolder
private boolean
strict
-
Fields inherited from class org.apache.sshd.common.util.io.ModifiableFileWatcher
options, STRICTLY_PROHIBITED_FILE_PERMISSION
-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
-
Constructor Summary
Constructors Constructor Description ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider)
ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider, boolean strict)
ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider)
ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider, boolean strict)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Iterable<java.security.KeyPair>
getClientIdentities(SessionContext session)
Provides aKeyPair
representing the client identityClientIdentityLoader
getClientIdentityLoader()
FilePasswordProvider
getFilePasswordProvider()
boolean
isStrict()
protected java.lang.Iterable<java.security.KeyPair>
reloadClientIdentities(SessionContext session, java.nio.file.Path path)
-
Methods inherited from class org.apache.sshd.common.util.io.ModifiableFileWatcher
checkReloadRequired, exists, getPath, lastModified, resetReloadAttributes, size, toPathResource, toPathResource, toString, updateReloadAttributes, validateStrictConfigFilePermissions
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
getSimplifiedLogger
-
-
-
-
Field Detail
-
identitiesHolder
private final java.util.concurrent.atomic.AtomicReference<java.lang.Iterable<java.security.KeyPair>> identitiesHolder
-
loaderHolder
private final ClientIdentityLoaderHolder loaderHolder
-
providerHolder
private final FilePasswordProviderHolder providerHolder
-
strict
private final boolean strict
-
-
Constructor Detail
-
ClientIdentityFileWatcher
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider)
-
ClientIdentityFileWatcher
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider, boolean strict)
-
ClientIdentityFileWatcher
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider)
-
ClientIdentityFileWatcher
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider, boolean strict)
-
-
Method Detail
-
isStrict
public boolean isStrict()
-
getClientIdentityLoader
public ClientIdentityLoader getClientIdentityLoader()
- Specified by:
getClientIdentityLoader
in interfaceClientIdentityLoaderHolder
- Returns:
- The
ClientIdentityLoader
to use in order to load client key pair identities - nevernull
-
getFilePasswordProvider
public FilePasswordProvider getFilePasswordProvider()
- Specified by:
getFilePasswordProvider
in interfaceFilePasswordProviderHolder
- Returns:
- The
FilePasswordProvider
to use if need to load encrypted identities keys - nevernull
- See Also:
FilePasswordProvider.EMPTY
-
getClientIdentities
public java.lang.Iterable<java.security.KeyPair> getClientIdentities(SessionContext session) throws java.io.IOException, java.security.GeneralSecurityException
Description copied from interface:ClientIdentityProvider
Provides aKeyPair
representing the client identity- Specified by:
getClientIdentities
in interfaceClientIdentityProvider
- Parameters:
session
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool).- 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. - Throws:
java.io.IOException
- If failed to load the identityjava.security.GeneralSecurityException
- If failed to parse the identity
-
reloadClientIdentities
protected java.lang.Iterable<java.security.KeyPair> reloadClientIdentities(SessionContext session, java.nio.file.Path path) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOException
java.security.GeneralSecurityException
-
-