Class AuthorizedKeyEntry
- java.lang.Object
-
- org.apache.sshd.common.config.keys.PublicKeyEntry
-
- org.apache.sshd.common.config.keys.AuthorizedKeyEntry
-
- All Implemented Interfaces:
java.io.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
-
-
Field Summary
Fields Modifier and Type Field Description static charBOOLEAN_OPTION_NEGATION_INDICATORprivate java.lang.Stringcommentprivate java.util.Map<java.lang.String,java.lang.String>loginOptionsprivate static longserialVersionUID-
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 java.util.AbstractMap.SimpleImmutableEntry<java.lang.String,java.lang.String>addLoginOption(java.util.Map<java.lang.String,java.lang.String> optsMap, java.lang.String option)Parses and adds a new option to the options map.java.security.PublicKeyappendPublicKey(SessionContext session, java.lang.Appendable sb, PublicKeyEntryResolver fallbackResolver)booleanequals(java.lang.Object obj)java.lang.StringgetComment()java.util.Map<java.lang.String,java.lang.String>getLoginOptions()inthashCode()static AuthorizedKeyEntryparseAuthorizedKeyEntry(java.lang.String value)static AuthorizedKeyEntryparseAuthorizedKeyEntry(java.lang.String value, PublicKeyEntryDataResolver resolver)static java.util.NavigableMap<java.lang.String,java.lang.String>parseLoginOptions(java.lang.String options)Parses login options line according to sshd(8) - AUTHORIZED_KEYS_FILE_FORMAT guidelines.static java.util.List<AuthorizedKeyEntry>readAuthorizedKeys(java.io.BufferedReader rdr)static java.util.List<AuthorizedKeyEntry>readAuthorizedKeys(java.io.InputStream in, boolean okToClose)Reads read the contents of anauthorized_keysfilestatic java.util.List<AuthorizedKeyEntry>readAuthorizedKeys(java.io.Reader rdr, boolean okToClose)Reads read the contents of anauthorized_keysfilestatic java.util.List<AuthorizedKeyEntry>readAuthorizedKeys(java.net.URL url)Reads read the contents of anauthorized_keysfilestatic java.util.List<AuthorizedKeyEntry>readAuthorizedKeys(java.nio.file.Path path, java.nio.file.OpenOption... options)Reads read the contents of anauthorized_keysfilestatic java.util.AbstractMap.SimpleImmutableEntry<java.lang.String,java.lang.String>resolveEntryComponents(java.lang.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.java.security.PublicKeyresolvePublicKey(SessionContext session, PublicKeyEntryResolver fallbackResolver)voidsetComment(java.lang.String value)voidsetLoginOptions(java.util.Map<java.lang.String,java.lang.String> value)java.lang.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
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
comment
private java.lang.String comment
-
loginOptions
private java.util.Map<java.lang.String,java.lang.String> loginOptions
-
-
Method Detail
-
getComment
public java.lang.String getComment()
-
setComment
public void setComment(java.lang.String value)
-
getLoginOptions
public java.util.Map<java.lang.String,java.lang.String> getLoginOptions()
-
setLoginOptions
public void setLoginOptions(java.util.Map<java.lang.String,java.lang.String> value)
-
resolvePublicKey
public java.security.PublicKey resolvePublicKey(SessionContext session, PublicKeyEntryResolver fallbackResolver) throws java.io.IOException, java.security.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:
java.io.IOException- If failed to decode the keyjava.security.GeneralSecurityException- If failed to generate the key- See Also:
PublicKeyEntry.resolvePublicKey(SessionContext, Map, PublicKeyEntryResolver)
-
appendPublicKey
public java.security.PublicKey appendPublicKey(SessionContext session, java.lang.Appendable sb, PublicKeyEntryResolver fallbackResolver) throws java.io.IOException, java.security.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:
java.io.IOException- If failed to decode/encode the keyjava.security.GeneralSecurityException- If failed to generate the key- See Also:
PublicKeyEntry.resolvePublicKey(SessionContext, Map, PublicKeyEntryResolver)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classPublicKeyEntry
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classPublicKeyEntry
-
toString
public java.lang.String toString()
- Overrides:
toStringin classPublicKeyEntry
-
readAuthorizedKeys
public static java.util.List<AuthorizedKeyEntry> readAuthorizedKeys(java.net.URL url) throws java.io.IOException
Reads read the contents of anauthorized_keysfile- Parameters:
url- TheURLto read from- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
java.io.IOException- If failed to read or parse the entries- See Also:
readAuthorizedKeys(InputStream, boolean)
-
readAuthorizedKeys
public static java.util.List<AuthorizedKeyEntry> readAuthorizedKeys(java.nio.file.Path path, java.nio.file.OpenOption... options) throws java.io.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:
java.io.IOException- If failed to read or parse the entries- See Also:
readAuthorizedKeys(InputStream, boolean),Files.newInputStream(Path, OpenOption...)
-
readAuthorizedKeys
public static java.util.List<AuthorizedKeyEntry> readAuthorizedKeys(java.io.InputStream in, boolean okToClose) throws java.io.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:
java.io.IOException- If failed to read or parse the entries- See Also:
readAuthorizedKeys(Reader, boolean)
-
readAuthorizedKeys
public static java.util.List<AuthorizedKeyEntry> readAuthorizedKeys(java.io.Reader rdr, boolean okToClose) throws java.io.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:
java.io.IOException- If failed to read or parse the entries- See Also:
readAuthorizedKeys(BufferedReader)
-
readAuthorizedKeys
public static java.util.List<AuthorizedKeyEntry> readAuthorizedKeys(java.io.BufferedReader rdr) throws java.io.IOException
- Parameters:
rdr- TheBufferedReaderto use to read the contents of anauthorized_keysfile- Returns:
- A
Listof all theAuthorizedKeyEntry-ies found there - Throws:
java.io.IOException- If failed to read or parse the entries- See Also:
parseAuthorizedKeyEntry(String)
-
parseAuthorizedKeyEntry
public static AuthorizedKeyEntry parseAuthorizedKeyEntry(java.lang.String value) throws java.lang.IllegalArgumentException
- Parameters:
value- Original line from anauthorized_keysfile- Returns:
AuthorizedKeyEntryornullif the line isnull/empty or a comment line- Throws:
java.lang.IllegalArgumentException- If failed to parse/decode the line- See Also:
parseAuthorizedKeyEntry(String, PublicKeyEntryDataResolver)
-
parseAuthorizedKeyEntry
public static AuthorizedKeyEntry parseAuthorizedKeyEntry(java.lang.String value, PublicKeyEntryDataResolver resolver) throws java.lang.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:
java.lang.IllegalArgumentException- If failed to parse/decode the line
-
resolveEntryComponents
public static java.util.AbstractMap.SimpleImmutableEntry<java.lang.String,java.lang.String> resolveEntryComponents(java.lang.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 java.util.NavigableMap<java.lang.String,java.lang.String> parseLoginOptions(java.lang.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 java.util.AbstractMap.SimpleImmutableEntry<java.lang.String,java.lang.String> addLoginOption(java.util.Map<java.lang.String,java.lang.String> optsMap, java.lang.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:
java.lang.IllegalStateException- If a boolean option is re-specified
-
-