Class AuthorizedKeyEntry
java.lang.Object
org.apache.sshd.common.config.keys.PublicKeyEntry
org.apache.sshd.common.config.keys.AuthorizedKeyEntry
- All Implemented Interfaces:
Serializable,KeyTypeIndicator
Represents an entry in the user's
authorized_keys file according to the
OpenSSH
format. Note: equals/hashCode check only the key type and data - the comment and/or login options
are not considered part of equality- See Also:
-
Field Summary
FieldsFields inherited from class org.apache.sshd.common.config.keys.PublicKeyEntry
COMMENT_CHAR, PUBKEY_FILE_SUFFIX, STD_KEYFILE_FOLDER_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddLoginOption(Map<String, String> optsMap, String option) Parses and adds a new option to the options map.appendPublicKey(SessionContext session, Appendable sb, PublicKeyEntryResolver fallbackResolver) booleaninthashCode()static AuthorizedKeyEntryparseAuthorizedKeyEntry(String value) static AuthorizedKeyEntryparseAuthorizedKeyEntry(String value, PublicKeyEntryDataResolver resolver) static NavigableMap<String, String> parseLoginOptions(String options) Parses login options line according to sshd(8) - AUTHORIZED_KEYS_FILE_FORMAT guidelines.static List<AuthorizedKeyEntry> static List<AuthorizedKeyEntry> readAuthorizedKeys(InputStream in, boolean okToClose) Reads read the contents of anauthorized_keysfilestatic List<AuthorizedKeyEntry> readAuthorizedKeys(Reader rdr, boolean okToClose) Reads read the contents of anauthorized_keysfilestatic List<AuthorizedKeyEntry> readAuthorizedKeys(URL url) Reads read the contents of anauthorized_keysfilestatic List<AuthorizedKeyEntry> readAuthorizedKeys(Path path, OpenOption... options) Reads read the contents of anauthorized_keysfileresolveEntryComponents(String entryLine) Parses a single line from anauthorized_keysfile that is known to contain login options and separates it to the options and the rest of the line.resolvePublicKey(SessionContext session, PublicKeyEntryResolver fallbackResolver) voidsetComment(String value) voidsetLoginOptions(Map<String, String> value) toString()Methods inherited from class org.apache.sshd.common.config.keys.PublicKeyEntry
appendPublicKeyEntry, appendPublicKeyEntry, getDefaultKeysFolderPath, getKeyData, getKeyDataEntryResolver, getKeyDataResolver, getKeyType, getRegisteredKeyDataEntryResolvers, isEquivalent, parsePublicKeyEntry, parsePublicKeyEntry, parsePublicKeyEntry, parsePublicKeyEntry, registerKeyDataEntryResolver, resolveKeyDataEntryResolver, resolvePublicKey, resolvePublicKeyEntries, resolvePublicKeyEntryDataResolver, setKeyData, setKeyDataResolver, setKeyType, toString, toString, unregisterKeyDataEntryResolver
-
Field Details
-
BOOLEAN_OPTION_NEGATION_INDICATOR
public static final char BOOLEAN_OPTION_NEGATION_INDICATOR- See Also:
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
comment
-
loginOptions
-
-
Constructor Details
-
AuthorizedKeyEntry
public AuthorizedKeyEntry()
-
-
Method Details
-
getComment
-
setComment
-
getLoginOptions
-
setLoginOptions
-
resolvePublicKey
public PublicKey resolvePublicKey(SessionContext session, PublicKeyEntryResolver fallbackResolver) throws IOException, GeneralSecurityException - Parameters:
session- TheSessionContextfor invoking this load command - may benullif not invoked within a session context (e.g., offline tool or session unknown).fallbackResolver- ThePublicKeyEntryResolverto consult if none of the built-in ones can be used. Ifnulland no built-in resolver can be used then anInvalidKeySpecExceptionis thrown.- Returns:
- The resolved
PublicKey- ornullif could not be resolved. Note: may be called only after key type and data bytes have been set or exception(s) may be thrown - Throws:
IOException- If failed to decode the keyGeneralSecurityException- If failed to generate the key- See Also:
-
appendPublicKey
public PublicKey appendPublicKey(SessionContext session, Appendable sb, PublicKeyEntryResolver fallbackResolver) throws IOException, GeneralSecurityException - Overrides:
appendPublicKeyin classPublicKeyEntry- Parameters:
session- TheSessionContextfor invoking this command - may benullif not invoked within a session context (e.g., offline tool or session unknown).sb- TheAppendableinstance to encode the data intofallbackResolver- ThePublicKeyEntryResolverto consult if none of the built-in ones can be used. Ifnulland no built-in resolver can be used then anInvalidKeySpecExceptionis thrown.- Returns:
- The
PublicKeyornullif could not resolve it - Throws:
IOException- If failed to decode/encode the keyGeneralSecurityException- If failed to generate the key- See Also:
-
hashCode
public int hashCode()- Overrides:
hashCodein classPublicKeyEntry
-
equals
- Overrides:
equalsin classPublicKeyEntry
-
toString
- Overrides:
toStringin classPublicKeyEntry
-
readAuthorizedKeys
Reads read the contents of anauthorized_keysfile- Parameters:
url- TheURLto read from- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
IOException- If failed to read or parse the entries- See Also:
-
readAuthorizedKeys
public static List<AuthorizedKeyEntry> readAuthorizedKeys(Path path, OpenOption... options) throws IOException Reads read the contents of anauthorized_keysfile- Parameters:
path-Pathto read fromoptions- TheOpenOptions to use - if unspecified then appropriate defaults assumed- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
IOException- If failed to read or parse the entries- See Also:
-
readAuthorizedKeys
public static List<AuthorizedKeyEntry> readAuthorizedKeys(InputStream in, boolean okToClose) throws IOException Reads read the contents of anauthorized_keysfile- Parameters:
in- TheInputStreamto use to read the contents of anauthorized_keysfileokToClose-trueif method may close the input regardless success or failure- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
IOException- If failed to read or parse the entries- See Also:
-
readAuthorizedKeys
public static List<AuthorizedKeyEntry> readAuthorizedKeys(Reader rdr, boolean okToClose) throws IOException Reads read the contents of anauthorized_keysfile- Parameters:
rdr- TheReaderto use to read the contents of anauthorized_keysfileokToClose-trueif method may close the input regardless success or failure- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
IOException- If failed to read or parse the entries- See Also:
-
readAuthorizedKeys
- Parameters:
rdr- TheBufferedReaderto use to read the contents of anauthorized_keysfile- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
IOException- If failed to read or parse the entries- See Also:
-
parseAuthorizedKeyEntry
public static AuthorizedKeyEntry parseAuthorizedKeyEntry(String value) throws IllegalArgumentException - Parameters:
value- Original line from anauthorized_keysfile- Returns:
AuthorizedKeyEntryornullif the line isnull/empty or a comment line- Throws:
IllegalArgumentException- If failed to parse/decode the line- See Also:
-
parseAuthorizedKeyEntry
public static AuthorizedKeyEntry parseAuthorizedKeyEntry(String value, PublicKeyEntryDataResolver resolver) throws IllegalArgumentException - Parameters:
value- Original line from anauthorized_keysfileresolver- ThePublicKeyEntryDataResolverto use - ifnullone will be automatically resolved from the key type- Returns:
AuthorizedKeyEntryornullif the line isnull/empty or a comment line- Throws:
IllegalArgumentException- If failed to parse/decode the line
-
resolveEntryComponents
public static AbstractMap.SimpleImmutableEntry<String,String> resolveEntryComponents(String entryLine) Parses a single line from anauthorized_keysfile that is known to contain login options and separates it to the options and the rest of the line.- Parameters:
entryLine- The line to be parsed- Returns:
- A
AbstractMap.SimpleImmutableEntryrepresenting the parsed data where key=login options part and value=rest of the data -nullif no data in line or line starts with comment character - See Also:
-
parseLoginOptions
Parses login options line according to sshd(8) - AUTHORIZED_KEYS_FILE_FORMAT guidelines. Note:
- Options that have a value are automatically stripped of any surrounding double quotes./
- Options that have no value are marked as
true/false- according to theBOOLEAN_OPTION_NEGATION_INDICATOR. - Options that appear multiple times are simply concatenated using comma as separator.
- Parameters:
options- The options line to parse - ignored ifnull/empty/blank- Returns:
- A
NavigableMapwhere key=case insensitive option name and value=the parsed value. - See Also:
-
addLoginOption
public static AbstractMap.SimpleImmutableEntry<String,String> addLoginOption(Map<String, String> optsMap, String option) Parses and adds a new option to the options map. If a valued option is re-specified then its value(s) are concatenated using comma as separator.- Parameters:
optsMap- Options map to add tooption- The option data to parse - ignored ifnull/empty/blank- Returns:
- The updated entry -
nullif no option updated in the map - Throws:
IllegalStateException- If a boolean option is re-specified
-