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
AClientIdentityProviderthat 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>>identitiesHolderprivate ClientIdentityLoaderHolderloaderHolderprivate FilePasswordProviderHolderproviderHolderprivate booleanstrict-
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 aKeyPairrepresenting the client identityClientIdentityLoadergetClientIdentityLoader()FilePasswordProvidergetFilePasswordProvider()booleanisStrict()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
-
-
-
-
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:
getClientIdentityLoaderin interfaceClientIdentityLoaderHolder- Returns:
- The
ClientIdentityLoaderto use in order to load client key pair identities - nevernull
-
getFilePasswordProvider
public FilePasswordProvider getFilePasswordProvider()
- Specified by:
getFilePasswordProviderin interfaceFilePasswordProviderHolder- Returns:
- The
FilePasswordProviderto 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:ClientIdentityProviderProvides aKeyPairrepresenting the client identity- Specified by:
getClientIdentitiesin interfaceClientIdentityProvider- Parameters:
session- TheSessionContextfor invoking this load command - may benullif 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.IOExceptionjava.security.GeneralSecurityException
-
-