Class ClientIdentity
- java.lang.Object
-
- org.apache.sshd.client.config.keys.ClientIdentity
-
public final class ClientIdentity extends java.lang.Object
Provides keys loading capability from the user's keys folder - e.g.,id_rsa
- See Also:
SecurityUtils.getKeyPairResourceParser()
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ID_FILE_PREFIX
static java.lang.String
ID_FILE_SUFFIX
static java.util.function.Function<java.lang.String,java.lang.String>
ID_GENERATOR
-
Constructor Summary
Constructors Modifier Constructor Description private
ClientIdentity()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
getIdentityFileName(java.lang.String type)
static java.lang.String
getIdentityFileName(NamedResource r)
static java.lang.String
getIdentityType(java.lang.String name)
static java.util.Map<java.lang.String,java.security.KeyPair>
loadDefaultIdentities(boolean strict, FilePasswordProvider provider, java.nio.file.LinkOption... options)
static java.util.Map<java.lang.String,java.security.KeyPair>
loadDefaultIdentities(java.nio.file.Path dir, boolean strict, FilePasswordProvider provider, java.nio.file.LinkOption... options)
static KeyPairProvider
loadDefaultKeyPairProvider(boolean strict, boolean supportedOnly, FilePasswordProvider provider, java.nio.file.LinkOption... options)
static KeyPairProvider
loadDefaultKeyPairProvider(java.nio.file.Path dir, boolean strict, boolean supportedOnly, FilePasswordProvider provider, java.nio.file.LinkOption... options)
static java.util.Map<java.lang.String,java.security.KeyPair>
loadIdentities(SessionContext session, java.nio.file.Path dir, boolean strict, java.util.Collection<java.lang.String> types, java.util.function.Function<? super java.lang.String,java.lang.String> idGenerator, FilePasswordProvider provider, java.nio.file.LinkOption... options)
Scans a folder and loads all available identity filesstatic java.util.Map<java.lang.String,java.nio.file.Path>
scanIdentitiesFolder(java.nio.file.Path dir, boolean strict, java.util.Collection<java.lang.String> types, java.util.function.Function<? super java.lang.String,java.lang.String> idGenerator, java.nio.file.LinkOption... options)
Scans a folder for possible identity files
-
-
-
Field Detail
-
ID_FILE_PREFIX
public static final java.lang.String ID_FILE_PREFIX
- See Also:
- Constant Field Values
-
ID_FILE_SUFFIX
public static final java.lang.String ID_FILE_SUFFIX
- See Also:
- Constant Field Values
-
ID_GENERATOR
public static final java.util.function.Function<java.lang.String,java.lang.String> ID_GENERATOR
-
-
Method Detail
-
getIdentityType
public static java.lang.String getIdentityType(java.lang.String name)
- Parameters:
name
- The file name - ignored ifnull
/empty- Returns:
- The identity type -
null
if cannot determine it - e.g., does not start with theID_FILE_PREFIX
-
getIdentityFileName
public static java.lang.String getIdentityFileName(NamedResource r)
-
getIdentityFileName
public static java.lang.String getIdentityFileName(java.lang.String type)
- Parameters:
type
- The identity type - e.g.,rsa
- ignored ifnull
/empty- Returns:
- The matching file name for the identity -
null
if no name - See Also:
ID_FILE_PREFIX
,ID_FILE_SUFFIX
,IdentityUtils.getIdentityFileName(String, String, String)
-
loadDefaultKeyPairProvider
public static KeyPairProvider loadDefaultKeyPairProvider(boolean strict, boolean supportedOnly, FilePasswordProvider provider, java.nio.file.LinkOption... options) throws java.io.IOException, java.security.GeneralSecurityException
- Parameters:
strict
- Iftrue
then files that do not have the required access rights are excluded from considerationsupportedOnly
- Iftrue
then ignore identities that are not supported internallyprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
KeyPair
for the identities -null
if no identities available (e.g., after filtering unsupported ones or strict permissions) - Throws:
java.io.IOException
- If failed to access the file systemjava.security.GeneralSecurityException
- If failed to load the keys- See Also:
PublicKeyEntry.getDefaultKeysFolderPath()
,loadDefaultIdentities(Path, boolean, FilePasswordProvider, LinkOption...)
-
loadDefaultKeyPairProvider
public static KeyPairProvider loadDefaultKeyPairProvider(java.nio.file.Path dir, boolean strict, boolean supportedOnly, FilePasswordProvider provider, java.nio.file.LinkOption... options) throws java.io.IOException, java.security.GeneralSecurityException
- Parameters:
dir
- The folder to scan for the built-in identitiesstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationsupportedOnly
- Iftrue
then ignore identities that are not supported internallyprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
KeyPair
for the identities -null
if no identities available (e.g., after filtering unsupported ones or strict permissions) - Throws:
java.io.IOException
- If failed to access the file systemjava.security.GeneralSecurityException
- If failed to load the keys- See Also:
loadDefaultIdentities(Path, boolean, FilePasswordProvider, LinkOption...)
,IdentityUtils.createKeyPairProvider(Map, boolean)
-
loadDefaultIdentities
public static java.util.Map<java.lang.String,java.security.KeyPair> loadDefaultIdentities(boolean strict, FilePasswordProvider provider, java.nio.file.LinkOption... options) throws java.io.IOException, java.security.GeneralSecurityException
- Parameters:
strict
- Iftrue
then files that do not have the required access rights are excluded from considerationprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
Map
of the found files where key=identity type (case insensitive), value=theKeyPair
of the identity - Throws:
java.io.IOException
- If failed to access the file systemjava.security.GeneralSecurityException
- If failed to load the keys- See Also:
PublicKeyEntry.getDefaultKeysFolderPath()
,loadDefaultIdentities(Path, boolean, FilePasswordProvider, LinkOption...)
-
loadDefaultIdentities
public static java.util.Map<java.lang.String,java.security.KeyPair> loadDefaultIdentities(java.nio.file.Path dir, boolean strict, FilePasswordProvider provider, java.nio.file.LinkOption... options) throws java.io.IOException, java.security.GeneralSecurityException
- Parameters:
dir
- The folder to scan for the built-in identitiesstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
Map
of the found files where key=identity type (case insensitive), value=theKeyPair
of the identity - Throws:
java.io.IOException
- If failed to access the file systemjava.security.GeneralSecurityException
- If failed to load the keys- See Also:
BuiltinIdentities
-
loadIdentities
public static java.util.Map<java.lang.String,java.security.KeyPair> loadIdentities(SessionContext session, java.nio.file.Path dir, boolean strict, java.util.Collection<java.lang.String> types, java.util.function.Function<? super java.lang.String,java.lang.String> idGenerator, FilePasswordProvider provider, java.nio.file.LinkOption... options) throws java.io.IOException, java.security.GeneralSecurityException
Scans a folder and loads all available identity files- Parameters:
session
- TheSessionContext
for invoking this load command - may benull
if not invoked within a session context (e.g., offline tool or session unknown).dir
- ThePath
of the folder to scan - ignored if not existsstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationtypes
- The identity types - ignored ifnull
/emptyidGenerator
- AFunction
to derive the file name holding the specified typeprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
Map
of the found files where key=identity type (case insensitive), value=theKeyPair
of the identity - Throws:
java.io.IOException
- If failed to access the file systemjava.security.GeneralSecurityException
- If failed to load the keys
-
scanIdentitiesFolder
public static java.util.Map<java.lang.String,java.nio.file.Path> scanIdentitiesFolder(java.nio.file.Path dir, boolean strict, java.util.Collection<java.lang.String> types, java.util.function.Function<? super java.lang.String,java.lang.String> idGenerator, java.nio.file.LinkOption... options) throws java.io.IOException
Scans a folder for possible identity files- Parameters:
dir
- ThePath
of the folder to scan - ignored if not existsstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationtypes
- The identity types - ignored ifnull
/emptyidGenerator
- AFunction
to derive the file name holding the specified typeoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- A
Map
of the found files where key=identity type (case insensitive), value=thePath
of the file holding the key - Throws:
java.io.IOException
- If failed to access the file system- See Also:
KeyUtils.validateStrictKeyFilePermissions(Path, LinkOption...)
-
-