Class UserAuthPublicKey
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.client.auth.AbstractUserAuth
-
- org.apache.sshd.client.auth.pubkey.UserAuthPublicKey
-
- All Implemented Interfaces:
UserAuth,ClientSessionHolder,UserAuthInstance<ClientSession>,NamedResource,SignatureFactoriesHolder,SignatureFactoriesManager
public class UserAuthPublicKey extends AbstractUserAuth implements SignatureFactoriesManager
Implements the "publickey" authentication mechanism
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringchosenAlgorithmprotected PublicKeyIdentitycurrentprotected java.util.Deque<java.lang.String>currentAlgorithmsprotected java.util.List<NamedFactory<Signature>>factoriesstatic AttributeRepository.AttributeKey<java.lang.String>IDENTITY_AGENTIs set on aClientSessionwhen it is created; contains the value of theIdentityAgentSSH config setting.protected java.util.Iterator<PublicKeyIdentity>keysstatic java.lang.StringNAMEstatic AttributeRepository.AttributeKey<java.lang.Boolean>USE_DEFAULT_IDENTITIESIs set on aClientSessionwhen it is created; ifBoolean.FALSE, no default identities shall be used.-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
Fields inherited from interface org.apache.sshd.common.NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTOR
-
-
Constructor Summary
Constructors Constructor Description UserAuthPublicKey()UserAuthPublicKey(java.util.List<NamedFactory<Signature>> factories)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]appendSignature(ClientSession session, java.lang.String service, java.lang.String name, java.lang.String username, java.lang.String algo, java.security.PublicKey key, Buffer buffer)protected java.util.Iterator<PublicKeyIdentity>createPublicKeyIterator(ClientSession session, SignatureFactoriesManager manager)voiddestroy()Called to release any allocated resourcesjava.util.List<NamedFactory<Signature>>getSignatureFactories()voidinit(ClientSession session, java.lang.String service)protected booleanprocessAuthDataRequest(ClientSession session, java.lang.String service, Buffer buffer)protected voidreleaseKeys()protected PublicKeyIdentityresolveAttemptedPublicKeyIdentity(ClientSession session, java.lang.String service)protected booleansendAuthDataRequest(ClientSession session, java.lang.String service)voidsetSignatureFactories(java.util.List<NamedFactory<Signature>> factories)voidsignalAuthMethodFailure(ClientSession session, java.lang.String service, boolean partial, java.util.List<java.lang.String> serverMethods, Buffer buffer)Signals reception ofSSH_MSG_USERAUTH_FAILUREmessagevoidsignalAuthMethodSuccess(ClientSession session, java.lang.String service, Buffer buffer)Signal reception ofSSH_MSG_USERAUTH_SUCCESSmessage-
Methods inherited from class org.apache.sshd.client.auth.AbstractUserAuth
getClientSession, getName, getService, getSession, process, toString
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesHolder
getSignatureFactoriesNameList, getSignatureFactoriesNames
-
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesManager
setSignatureFactoriesNameList, setSignatureFactoriesNames, setSignatureFactoriesNames
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
USE_DEFAULT_IDENTITIES
public static final AttributeRepository.AttributeKey<java.lang.Boolean> USE_DEFAULT_IDENTITIES
Is set on aClientSessionwhen it is created; ifBoolean.FALSE, no default identities shall be used.
-
IDENTITY_AGENT
public static final AttributeRepository.AttributeKey<java.lang.String> IDENTITY_AGENT
Is set on aClientSessionwhen it is created; contains the value of theIdentityAgentSSH config setting. May be the empty string if not specified in theHostConfigEntry.
-
currentAlgorithms
protected final java.util.Deque<java.lang.String> currentAlgorithms
-
keys
protected java.util.Iterator<PublicKeyIdentity> keys
-
current
protected PublicKeyIdentity current
-
factories
protected java.util.List<NamedFactory<Signature>> factories
-
chosenAlgorithm
protected java.lang.String chosenAlgorithm
-
-
Constructor Detail
-
UserAuthPublicKey
public UserAuthPublicKey()
-
UserAuthPublicKey
public UserAuthPublicKey(java.util.List<NamedFactory<Signature>> factories)
-
-
Method Detail
-
getSignatureFactories
public java.util.List<NamedFactory<Signature>> getSignatureFactories()
- Specified by:
getSignatureFactoriesin interfaceSignatureFactoriesHolder- Returns:
- The list of named
Signaturefactories
-
setSignatureFactories
public void setSignatureFactories(java.util.List<NamedFactory<Signature>> factories)
- Specified by:
setSignatureFactoriesin interfaceSignatureFactoriesManager
-
init
public void init(ClientSession session, java.lang.String service) throws java.lang.Exception
- Specified by:
initin interfaceUserAuth- Overrides:
initin classAbstractUserAuth- Parameters:
session- TheClientSessionservice- The requesting service name- Throws:
java.lang.Exception- If failed to initialize the mechanism
-
createPublicKeyIterator
protected java.util.Iterator<PublicKeyIdentity> createPublicKeyIterator(ClientSession session, SignatureFactoriesManager manager) throws java.lang.Exception
- Throws:
java.lang.Exception
-
sendAuthDataRequest
protected boolean sendAuthDataRequest(ClientSession session, java.lang.String service) throws java.lang.Exception
- Specified by:
sendAuthDataRequestin classAbstractUserAuth- Throws:
java.lang.Exception
-
resolveAttemptedPublicKeyIdentity
protected PublicKeyIdentity resolveAttemptedPublicKeyIdentity(ClientSession session, java.lang.String service) throws java.lang.Exception
- Throws:
java.lang.Exception
-
processAuthDataRequest
protected boolean processAuthDataRequest(ClientSession session, java.lang.String service, Buffer buffer) throws java.lang.Exception
- Specified by:
processAuthDataRequestin classAbstractUserAuth- Throws:
java.lang.Exception
-
appendSignature
protected byte[] appendSignature(ClientSession session, java.lang.String service, java.lang.String name, java.lang.String username, java.lang.String algo, java.security.PublicKey key, Buffer buffer) throws java.lang.Exception
- Throws:
java.lang.Exception
-
signalAuthMethodSuccess
public void signalAuthMethodSuccess(ClientSession session, java.lang.String service, Buffer buffer) throws java.lang.Exception
Description copied from interface:UserAuthSignal reception ofSSH_MSG_USERAUTH_SUCCESSmessage- Specified by:
signalAuthMethodSuccessin interfaceUserAuth- Parameters:
session- TheClientSessionservice- The requesting service namebuffer- TheBuffercontaining the success message (after having consumed the relevant data from it)- Throws:
java.lang.Exception- If failed to handle the callback - Note: may cause session close
-
signalAuthMethodFailure
public void signalAuthMethodFailure(ClientSession session, java.lang.String service, boolean partial, java.util.List<java.lang.String> serverMethods, Buffer buffer) throws java.lang.Exception
Description copied from interface:UserAuthSignals reception ofSSH_MSG_USERAUTH_FAILUREmessage- Specified by:
signalAuthMethodFailurein interfaceUserAuth- Parameters:
session- TheClientSessionservice- The requesting service namepartial-trueif some partial authentication success so farserverMethods- TheListof authentication methods that can continuebuffer- TheBuffercontaining the failure message (after having consumed the relevant data from it)- Throws:
java.lang.Exception- If failed to handle the callback - Note: may cause session close
-
destroy
public void destroy()
Description copied from interface:UserAuthCalled to release any allocated resources- Specified by:
destroyin interfaceUserAuth- Overrides:
destroyin classAbstractUserAuth
-
releaseKeys
protected void releaseKeys() throws java.io.IOException- Throws:
java.io.IOException
-
-