Class HostConfigEntry
java.lang.Object
org.apache.sshd.client.config.hosts.HostPatternsHolder
org.apache.sshd.client.config.hosts.HostConfigEntry
- All Implemented Interfaces:
MutableUserHolder
,UsernameHolder
Represents an entry in the client's configuration file as defined by the
ssh_config configuration file format
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final boolean
static final String
Use only the identities specified in the host entry (if any)protected Boolean
static final NavigableSet
<String> A case insensitiveNavigableSet
of the properties that receive special handlingprotected String
static final String
static final String
protected String
protected final Collection
<String> static final String
The IdentityAgent configuration.static final String
static final char
static final char
static final char
static final String
static final String
static final char
protected int
static final String
static final String
protected String
static final char
static final char
static final char
static final String
Standard OpenSSH config file namestatic final String
protected String
Fields inherited from class org.apache.sshd.client.config.hosts.HostPatternsHolder
ALL_HOSTS_PATTERN, NEGATION_CHAR_PATTERN, NON_STANDARD_PORT_PATTERN_ENCLOSURE_END_DELIM, NON_STANDARD_PORT_PATTERN_ENCLOSURE_START_DELIM, PATTERN_CHARS, PORT_VALUE_DELIMITER, SINGLE_CHAR_PATTERN, WILDCARD_PATTERN
-
Constructor Summary
ConstructorsConstructorDescriptionHostConfigEntry
(String pattern, String host, int port, String username) HostConfigEntry
(String pattern, String host, int port, String username, String proxyJump) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addIdentity
(String id) Adds a path to an identity filevoid
addIdentity
(Path path) <A extends Appendable>
Aappend
(A sb) static <A extends Appendable>
AappendHostConfigEntries
(A sb, Collection<? extends HostConfigEntry> entries) static <A extends Appendable>
AappendNonEmptyPort
(A sb, String name, int port) static <A extends Appendable>
AappendNonEmptyProperties
(A sb, Map<String, ?> props) Appends the extra properties - while skipping theEXPLICIT_PROPERTIES
onesstatic <A extends Appendable>
AappendNonEmptyProperty
(A sb, String name, Object value) static <A extends Appendable>
AappendNonEmptyValues
(A sb, String name, Object... values) static <A extends Appendable>
AappendNonEmptyValues
(A sb, String name, Collection<?> values) appendPropertyValue
(String name, String value) Appends a value using a comma to an existing one.void
collate
(HostConfigEntry that) Merges that into this via underride.static List
<HostConfigEntry> findMatchingEntries
(String host, Collection<? extends HostConfigEntry> entries) Locates all the matching entries for a give host name / addressstatic List
<HostConfigEntry> findMatchingEntries
(String host, HostConfigEntry... entries) Locates all the matching entries for a give host name / addressstatic Path
getHost()
int
getPort()
getProperty
(String name) getProperty
(String name, String defaultValue) boolean
parseConfigValue
(String value) Checks if this is a multi-value - allow space and commavoid
processProperty
(String name, Collection<String> valsList) static List
<HostConfigEntry> Reads configuration entriesstatic List
<HostConfigEntry> readHostConfigEntries
(InputStream inStream, boolean okToClose) static List
<HostConfigEntry> readHostConfigEntries
(Reader rdr, boolean okToClose) static List
<HostConfigEntry> readHostConfigEntries
(URL url) static List
<HostConfigEntry> readHostConfigEntries
(Path path, OpenOption... options) removeProperty
(String name) static String
resolveIdentityFilePath
(String id, String host, int port, String username) void
void
setHost
(Collection<String> patterns) void
setHostName
(String hostName) void
setIdentities
(Collection<String> identities) void
setIdentitiesOnly
(boolean identitiesOnly) void
setPort
(int port) void
setProperties
(Map<String, String> properties) setProperty
(String name, String value) Sets / Replaces the property valuevoid
setProxyJump
(String proxyJump) void
setUsername
(String username) static HostConfigEntryResolver
toHostConfigEntryResolver
(Collection<? extends HostConfigEntry> entries) toString()
static void
writeHostConfigEntries
(OutputStream outputStream, boolean okToClose, Collection<? extends HostConfigEntry> entries) static void
writeHostConfigEntries
(Path path, Collection<? extends HostConfigEntry> entries, OpenOption... options) Methods inherited from class org.apache.sshd.client.config.hosts.HostPatternsHolder
getPatterns, isHostMatch, isHostMatch, isHostMatch, isPortMatch, isSpecificHostPattern, isValidPatternChar, parsePatterns, parsePatterns, setPatterns, toPattern
-
Field Details
-
STD_CONFIG_FILENAME
Standard OpenSSH config file name- See Also:
-
HOST_CONFIG_PROP
- See Also:
-
MATCH_CONFIG_PROP
- See Also:
-
HOST_NAME_CONFIG_PROP
- See Also:
-
PORT_CONFIG_PROP
- See Also:
-
USER_CONFIG_PROP
- See Also:
-
PROXY_JUMP_CONFIG_PROP
- See Also:
-
IDENTITY_FILE_CONFIG_PROP
- See Also:
-
CERTIFICATE_FILE_CONFIG_PROP
- See Also:
-
EXCLUSIVE_IDENTITIES_CONFIG_PROP
Use only the identities specified in the host entry (if any)- See Also:
-
DEFAULT_EXCLUSIVE_IDENTITIES
public static final boolean DEFAULT_EXCLUSIVE_IDENTITIES- See Also:
-
IDENTITY_AGENT
The IdentityAgent configuration. If not set in theHostConfigEntry
, the value of thisproperty
isnull
, which means that a default SSH agent is to be used, if it is running. Other values defined by OpenSSH are:- none
- No SHH agent is to be used at all, even if one is running.
- SSH_AUTH_SOCK
- The SSH agent listening on the Unix domain socket given by the environment variable
SSH_AUTH_SOCK
shall be used. If the environment variable is not set, no SSH agent is used. - other
- For OpenSSH, the value shall resolve to the file name of a Unix domain socket to use to connect to an SSH agent.
- See Also:
-
EXPLICIT_PROPERTIES
A case insensitiveNavigableSet
of the properties that receive special handling -
MULTI_VALUE_SEPARATORS
- See Also:
-
PATH_MACRO_CHAR
public static final char PATH_MACRO_CHAR- See Also:
-
LOCAL_HOME_MACRO
public static final char LOCAL_HOME_MACRO- See Also:
-
LOCAL_USER_MACRO
public static final char LOCAL_USER_MACRO- See Also:
-
LOCAL_HOST_MACRO
public static final char LOCAL_HOST_MACRO- See Also:
-
REMOTE_HOST_MACRO
public static final char REMOTE_HOST_MACRO- See Also:
-
REMOTE_USER_MACRO
public static final char REMOTE_USER_MACRO- See Also:
-
REMOTE_PORT_MACRO
public static final char REMOTE_PORT_MACRO- See Also:
-
host
-
hostName
-
port
protected int port -
username
-
proxyJump
-
exclusiveIdentites
-
identities
-
properties
-
-
Constructor Details
-
HostConfigEntry
public HostConfigEntry() -
HostConfigEntry
-
HostConfigEntry
-
-
Method Details
-
collate
Merges that into this via underride. That is, any value present in this entry takes precedence over the given entry. Only this object is modified. The given entry remains unchanged.- Parameters:
that
- The HostConfigEntry to merge.
-
getHost
- Returns:
- The pattern(s) represented by this entry
-
setHost
-
setHost
-
getHostName
- Returns:
- The effective host name to connect to if the pattern matches
-
setHostName
-
getPort
public int getPort()- Returns:
- A port override - if positive
-
setPort
public void setPort(int port) -
getUsername
- Specified by:
getUsername
in interfaceUsernameHolder
- Returns:
- A username override - if not
null
/empty
-
setUsername
- Specified by:
setUsername
in interfaceMutableUserHolder
-
getProxyJump
- Returns:
- the host to use as a proxy
-
setProxyJump
-
getIdentities
- Returns:
- The current identities file paths - may be
null
/empty
-
addIdentity
- Parameters:
path
- APath
to a file that contains an identity key - nevernull
-
addIdentity
Adds a path to an identity file- Parameters:
id
- The identity path to add - nevernull
-
setIdentities
-
isIdentitiesOnly
public boolean isIdentitiesOnly()- Returns:
true
if must use only the identities in this entry
-
setIdentitiesOnly
public void setIdentitiesOnly(boolean identitiesOnly) -
getProperties
- Returns:
- A
Map
of extra properties that have been read - may benull
/empty, or even contain some values that have been parsed and set as members of the entry (e.g., host, port, etc.). Note: multi-valued keys use a comma-separated list of values
-
getProperty
- Parameters:
name
- Property name - nevernull
/empty- Returns:
- Property value or
null
if no such property - See Also:
-
getProperty
- Parameters:
name
- Property name - nevernull
/emptydefaultValue
- Default value to return if no such property- Returns:
- The property value or the default one if no such property
-
processProperty
- Parameters:
name
- Property name - nevernull
/emptyvalsList
- The available values for the property- See Also:
-
appendPropertyValue
Appends a value using a comma to an existing one. If no previous value then same as callingsetProperty(String, String)
.- Parameters:
name
- Property name - nevernull
/emptyvalue
- The value to be appended - ignored ifnull
/empty- Returns:
- The value before appending -
null
if no previous value
-
setProperty
Sets / Replaces the property value- Parameters:
name
- Property name - nevernull
/emptyvalue
- Property value - ifnull
/empty thenremoveProperty(String)
is called- Returns:
- The previous property value -
null
if no such name
-
removeProperty
- Parameters:
name
- Property name - nevernull
/empty- Returns:
- The removed property value -
null
if no such property name
-
setProperties
- Parameters:
properties
- The properties to set - ifnull
then an empty map is effectively set. Note: it is highly recommended to use a case insensitive key mapper.
-
append
- Throws:
IOException
-
toString
-
appendNonEmptyPort
public static <A extends Appendable> A appendNonEmptyPort(A sb, String name, int port) throws IOException - Type Parameters:
A
- TheAppendable
type- Parameters:
sb
- The target appendername
- The property name - nevernull
/emptyport
- The port value - ignored if non-positive- Returns:
- The target appender after having appended (or not) the value
- Throws:
IOException
- If failed to append the requested data- See Also:
-
appendNonEmptyProperties
public static <A extends Appendable> A appendNonEmptyProperties(A sb, Map<String, ?> props) throws IOExceptionAppends the extra properties - while skipping theEXPLICIT_PROPERTIES
ones- Type Parameters:
A
- TheAppendable
type- Parameters:
sb
- The target appenderprops
- TheMap
of properties - ignored ifnull
/empty- Returns:
- The target appender after having appended (or not) the value
- Throws:
IOException
- If failed to append the requested data- See Also:
-
appendNonEmptyProperty
public static <A extends Appendable> A appendNonEmptyProperty(A sb, String name, Object value) throws IOException - Type Parameters:
A
- TheAppendable
type- Parameters:
sb
- The target appendername
- The property name - nevernull
/emptyvalue
- The property value - ignored ifnull
. Note: if the string representation of the value contains any commas, they are assumed to indicate a multi-valued property which is broken down to individual lines - one per value.- Returns:
- The target appender after having appended (or not) the value
- Throws:
IOException
- If failed to append the requested data- See Also:
-
appendNonEmptyValues
public static <A extends Appendable> A appendNonEmptyValues(A sb, String name, Object... values) throws IOException - Type Parameters:
A
- TheAppendable
type- Parameters:
sb
- The target appendername
- The property name - nevernull
/emptyvalues
- The values to be added - one per line - ignored ifnull
/empty- Returns:
- The target appender after having appended (or not) the value
- Throws:
IOException
- If failed to append the requested data- See Also:
-
appendNonEmptyValues
public static <A extends Appendable> A appendNonEmptyValues(A sb, String name, Collection<?> values) throws IOException - Type Parameters:
A
- TheAppendable
type- Parameters:
sb
- The target appendername
- The property name - nevernull
/emptyvalues
- The values to be added - one per line - ignored ifnull
/empty- Returns:
- The target appender after having appended (or not) the value
- Throws:
IOException
- If failed to append the requested data
-
findMatchingEntries
Locates all the matching entries for a give host name / address- Parameters:
host
- The host name / address - ignored ifnull
/emptyentries
- TheHostConfigEntry
-ies to scan - ignored ifnull
/empty- Returns:
- A
List
of all the matching entries - See Also:
-
findMatchingEntries
public static List<HostConfigEntry> findMatchingEntries(String host, Collection<? extends HostConfigEntry> entries) Locates all the matching entries for a give host name / address- Parameters:
host
- The host name / address - ignored ifnull
/emptyentries
- TheHostConfigEntry
-ies to scan - ignored ifnull
/empty- Returns:
- A
List
of all the matching entries - See Also:
-
toHostConfigEntryResolver
public static HostConfigEntryResolver toHostConfigEntryResolver(Collection<? extends HostConfigEntry> entries) - Parameters:
entries
- The entries - ignored ifnull
/empty- Returns:
- A
HostConfigEntryResolver
wrapper using the entries
-
readHostConfigEntries
public static List<HostConfigEntry> readHostConfigEntries(Path path, OpenOption... options) throws IOException - Throws:
IOException
-
readHostConfigEntries
- Throws:
IOException
-
readHostConfigEntries
public static List<HostConfigEntry> readHostConfigEntries(InputStream inStream, boolean okToClose) throws IOException - Throws:
IOException
-
readHostConfigEntries
public static List<HostConfigEntry> readHostConfigEntries(Reader rdr, boolean okToClose) throws IOException - Throws:
IOException
-
readHostConfigEntries
Reads configuration entries- Parameters:
rdr
- TheBufferedReader
to use- Returns:
- The
List
of readHostConfigEntry
-ies - Throws:
IOException
- If failed to parse the read configuration
-
writeHostConfigEntries
public static void writeHostConfigEntries(Path path, Collection<? extends HostConfigEntry> entries, OpenOption... options) throws IOException - Throws:
IOException
-
writeHostConfigEntries
public static void writeHostConfigEntries(OutputStream outputStream, boolean okToClose, Collection<? extends HostConfigEntry> entries) throws IOException - Throws:
IOException
-
appendHostConfigEntries
public static <A extends Appendable> A appendHostConfigEntries(A sb, Collection<? extends HostConfigEntry> entries) throws IOException - Throws:
IOException
-
parseConfigValue
Checks if this is a multi-value - allow space and comma- Parameters:
value
- The value - ignored ifnull
/empty (after trimming)- Returns:
- A
List
of the encountered values
-
resolveIdentityFilePath
public static String resolveIdentityFilePath(String id, String host, int port, String username) throws IOException - Throws:
IOException
-
getDefaultHostConfigFile
- Returns:
- The default
Path
location of the OpenSSH hosts entries configuration file
-