Class AuthorizedKeyEntry
- java.lang.Object
-
- org.apache.sshd.common.config.keys.PublicKeyEntry
-
- org.apache.sshd.common.config.keys.AuthorizedKeyEntry
-
- All Implemented Interfaces:
Serializable,KeyTypeIndicator
public class AuthorizedKeyEntry extends PublicKeyEntry
Represents an entry in the user'sauthorized_keysfile according to the OpenSSH format. Note:equals/hashCodecheck only the key type and data - the comment and/or login options are not considered part of equality- Author:
- Apache MINA SSHD Project
- See Also:
- sshd(8) - AUTHORIZED_KEYS_FILE_FORMAT, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static charBOOLEAN_OPTION_NEGATION_INDICATOR-
Fields inherited from class org.apache.sshd.common.config.keys.PublicKeyEntry
COMMENT_CHAR, PUBKEY_FILE_SUFFIX, STD_KEYFILE_FOLDER_NAME
-
-
Constructor Summary
Constructors Constructor Description AuthorizedKeyEntry()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AbstractMap.SimpleImmutableEntry<String,String>addLoginOption(Map<String,String> optsMap, String option)Parses and adds a new option to the options map.PublicKeyappendPublicKey(SessionContext session, Appendable sb, PublicKeyEntryResolver fallbackResolver)booleanequals(Object obj)StringgetComment()Map<String,String>getLoginOptions()inthashCode()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>readAuthorizedKeys(BufferedReader rdr)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_keysfilestatic 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.PublicKeyresolvePublicKey(SessionContext session, PublicKeyEntryResolver fallbackResolver)voidsetComment(String value)voidsetLoginOptions(Map<String,String> value)StringtoString()-
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 Detail
-
BOOLEAN_OPTION_NEGATION_INDICATOR
public static final char BOOLEAN_OPTION_NEGATION_INDICATOR
- See Also:
- Constant Field Values
-
-
Method Detail
-
getComment
public String getComment()
-
setComment
public void setComment(String value)
-
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:
PublicKeyEntry.resolvePublicKey(SessionContext, Map, PublicKeyEntryResolver)
-
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:
PublicKeyEntry.resolvePublicKey(SessionContext, Map, PublicKeyEntryResolver)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classPublicKeyEntry
-
equals
public boolean equals(Object obj)
- Overrides:
equalsin classPublicKeyEntry
-
toString
public String toString()
- Overrides:
toStringin classPublicKeyEntry
-
readAuthorizedKeys
public static List<AuthorizedKeyEntry> readAuthorizedKeys(URL url) throws IOException
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(InputStream, boolean)
-
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(InputStream, boolean),Files.newInputStream(Path, OpenOption...)
-
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(Reader, boolean)
-
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(BufferedReader)
-
readAuthorizedKeys
public static List<AuthorizedKeyEntry> readAuthorizedKeys(BufferedReader rdr) throws IOException
- 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(String)
-
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(String, PublicKeyEntryDataResolver)
-
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:
- sshd(8) - AUTHORIZED_KEYS_FILE_FORMAT
-
parseLoginOptions
public static NavigableMap<String,String> parseLoginOptions(String options)
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
-
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
-
-