public class ClientIdentityFileWatcher extends ModifiableFileWatcher implements ClientIdentityProvider, ClientIdentityLoaderHolder, FilePasswordProviderHolder
ClientIdentityProvider
that watches a given key file re-loading its contents if it is ever modified,
deleted or (re-)createdModifier and Type | Field and Description |
---|---|
private java.util.concurrent.atomic.AtomicReference<java.lang.Iterable<java.security.KeyPair>> |
identitiesHolder |
private ClientIdentityLoaderHolder |
loaderHolder |
private FilePasswordProviderHolder |
providerHolder |
private boolean |
strict |
options, STRICTLY_PROHIBITED_FILE_PERMISSION
log
Constructor and Description |
---|
ClientIdentityFileWatcher(java.nio.file.Path path,
ClientIdentityLoader loader,
FilePasswordProvider provider) |
ClientIdentityFileWatcher(java.nio.file.Path path,
ClientIdentityLoader loader,
FilePasswordProvider provider,
boolean strict) |
ClientIdentityFileWatcher(java.nio.file.Path path,
ClientIdentityLoaderHolder loader,
FilePasswordProviderHolder provider) |
ClientIdentityFileWatcher(java.nio.file.Path path,
ClientIdentityLoaderHolder loader,
FilePasswordProviderHolder provider,
boolean strict) |
Modifier and Type | Method and Description |
---|---|
java.lang.Iterable<java.security.KeyPair> |
getClientIdentities(SessionContext session)
Provides a
KeyPair representing the client identity |
ClientIdentityLoader |
getClientIdentityLoader() |
FilePasswordProvider |
getFilePasswordProvider() |
boolean |
isStrict() |
protected java.lang.Iterable<java.security.KeyPair> |
reloadClientIdentities(SessionContext session,
java.nio.file.Path path) |
checkReloadRequired, exists, getPath, lastModified, resetReloadAttributes, size, toPathResource, toPathResource, toString, updateReloadAttributes, validateStrictConfigFilePermissions
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
lazyKeysIterator, lazyKeysLoader, of
loaderHolderOf
providerHolderOf
private final java.util.concurrent.atomic.AtomicReference<java.lang.Iterable<java.security.KeyPair>> identitiesHolder
private final ClientIdentityLoaderHolder loaderHolder
private final FilePasswordProviderHolder providerHolder
private final boolean strict
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider)
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoader loader, FilePasswordProvider provider, boolean strict)
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider)
public ClientIdentityFileWatcher(java.nio.file.Path path, ClientIdentityLoaderHolder loader, FilePasswordProviderHolder provider, boolean strict)
public boolean isStrict()
public ClientIdentityLoader getClientIdentityLoader()
getClientIdentityLoader
in interface ClientIdentityLoaderHolder
ClientIdentityLoader
to use in order to load client key pair identities - never null
public FilePasswordProvider getFilePasswordProvider()
getFilePasswordProvider
in interface FilePasswordProviderHolder
FilePasswordProvider
to use if need to load encrypted identities keys - never null
FilePasswordProvider.EMPTY
public java.lang.Iterable<java.security.KeyPair> getClientIdentities(SessionContext session) throws java.io.IOException, java.security.GeneralSecurityException
ClientIdentityProvider
KeyPair
representing the client identitygetClientIdentities
in interface ClientIdentityProvider
session
- 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 identityprotected java.lang.Iterable<java.security.KeyPair> reloadClientIdentities(SessionContext session, java.nio.file.Path path) throws java.io.IOException, java.security.GeneralSecurityException
java.io.IOException
java.security.GeneralSecurityException