Class ScramClientFunctionalityImpl
- java.lang.Object
-
- org.apache.activemq.artemis.protocol.amqp.sasl.scram.ScramClientFunctionalityImpl
-
- All Implemented Interfaces:
ScramClientFunctionality
public class ScramClientFunctionalityImpl extends java.lang.Object implements ScramClientFunctionality
Provides building blocks for creating SCRAM authentication client
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.activemq.artemis.protocol.amqp.sasl.scram.ScramClientFunctionality
ScramClientFunctionality.State
-
-
Constructor Summary
Constructors Constructor Description ScramClientFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName)Create new ScramClientFunctionalityImplScramClientFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName, java.lang.String clientNonce)Create new ScramClientFunctionalityImpl
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckServerFinalMessage(java.lang.String serverFinalMessage)Checks if the server's final message is validScramClientFunctionality.StategetState()Gets the state of the authentication procedurebooleanisEnded()Checks if authentication is completed, either successfully or not.booleanisSuccessful()Checks if authentication is successful.java.lang.StringprepareFinalMessage(java.lang.String password, java.lang.String serverFirstMessage)Prepares client's final messagejava.lang.StringprepareFirstMessage(java.lang.String username)Prepares first client message You may want to useStringPrep.isContainingProhibitedCharacters(String)in order to check if the username contains only valid characters
-
-
-
Constructor Detail
-
ScramClientFunctionalityImpl
public ScramClientFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName)Create new ScramClientFunctionalityImpl- Parameters:
digestName- Digest to be usedhmacName- HMAC to be used
-
ScramClientFunctionalityImpl
public ScramClientFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName, java.lang.String clientNonce)Create new ScramClientFunctionalityImpl- Parameters:
digestName- Digest to be usedhmacName- HMAC to be usedclientNonce- Client nonce to be used
-
-
Method Detail
-
prepareFirstMessage
public java.lang.String prepareFirstMessage(java.lang.String username) throws org.apache.activemq.artemis.spi.core.security.scram.ScramExceptionPrepares first client message You may want to useStringPrep.isContainingProhibitedCharacters(String)in order to check if the username contains only valid characters- Specified by:
prepareFirstMessagein interfaceScramClientFunctionality- Parameters:
username- Username- Returns:
- prepared first message
- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException- ifusernamecontains prohibited characters
-
prepareFinalMessage
public java.lang.String prepareFinalMessage(java.lang.String password, java.lang.String serverFirstMessage) throws org.apache.activemq.artemis.spi.core.security.scram.ScramExceptionDescription copied from interface:ScramClientFunctionalityPrepares client's final message- Specified by:
prepareFinalMessagein interfaceScramClientFunctionality- Parameters:
password- User passwordserverFirstMessage- Server's first message- Returns:
- Client's final message
- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException- if there is an error processing server's message, i.e. it violates the protocol
-
checkServerFinalMessage
public void checkServerFinalMessage(java.lang.String serverFinalMessage) throws org.apache.activemq.artemis.spi.core.security.scram.ScramExceptionDescription copied from interface:ScramClientFunctionalityChecks if the server's final message is valid- Specified by:
checkServerFinalMessagein interfaceScramClientFunctionality- Parameters:
serverFinalMessage- Server's final message- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException- if there is an error processing server's message, i.e. it violates the protocol
-
isSuccessful
public boolean isSuccessful()
Description copied from interface:ScramClientFunctionalityChecks if authentication is successful. You can call this method only if authentication is completed. Ensure that usingScramClientFunctionality.isEnded()- Specified by:
isSuccessfulin interfaceScramClientFunctionality- Returns:
- true if successful, false otherwise
-
isEnded
public boolean isEnded()
Description copied from interface:ScramClientFunctionalityChecks if authentication is completed, either successfully or not. Authentication is completed ifScramClientFunctionality.getState()returns ENDED.- Specified by:
isEndedin interfaceScramClientFunctionality- Returns:
- true if authentication has ended
-
getState
public ScramClientFunctionality.State getState()
Description copied from interface:ScramClientFunctionalityGets the state of the authentication procedure- Specified by:
getStatein interfaceScramClientFunctionality- Returns:
- Current state
-
-