Class ScramServerFunctionalityImpl
- java.lang.Object
-
- org.apache.activemq.artemis.protocol.amqp.sasl.scram.ScramServerFunctionalityImpl
-
- All Implemented Interfaces:
ScramServerFunctionality
public class ScramServerFunctionalityImpl extends java.lang.Object implements ScramServerFunctionality
Provides building blocks for creating SCRAM authentication server
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.activemq.artemis.protocol.amqp.sasl.scram.ScramServerFunctionality
ScramServerFunctionality.State
-
-
Constructor Summary
Constructors Constructor Description ScramServerFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName)Creates new ScramServerFunctionalityImplScramServerFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName, java.lang.String serverPartNonce)/** Creates new ScramServerFunctionalityImpl
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.security.MessageDigestgetDigest()javax.crypto.MacgetHmac()ScramServerFunctionality.StategetState()Gets the state of the authentication procedurejava.lang.StringhandleClientFirstMessage(java.lang.String message)Handles client's first messagebooleanisEnded()Checks if authentication is completed, either successfully or not.booleanisSuccessful()Checks if authentication is completed, either successfully or not.java.lang.StringprepareFinalMessage(java.lang.String clientFinalMessage)Prepares server's final messagejava.lang.StringprepareFinalMessageUnchecked(java.lang.String clientFinalMessage)java.lang.StringprepareFirstMessage(org.apache.activemq.artemis.spi.core.security.scram.UserData userData)Prepares server's first message
-
-
-
Constructor Detail
-
ScramServerFunctionalityImpl
public ScramServerFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName) throws java.security.NoSuchAlgorithmExceptionCreates new ScramServerFunctionalityImpl- Parameters:
digestName- Digest to be usedhmacName- HMAC to be used- Throws:
java.security.NoSuchAlgorithmException
-
ScramServerFunctionalityImpl
public ScramServerFunctionalityImpl(java.lang.String digestName, java.lang.String hmacName, java.lang.String serverPartNonce) throws java.security.NoSuchAlgorithmException/** Creates new ScramServerFunctionalityImpl- Parameters:
digestName- Digest to be usedhmacName- HMAC to be usedserverPartNonce- Server's part of the nonce- Throws:
java.security.NoSuchAlgorithmException
-
-
Method Detail
-
handleClientFirstMessage
public java.lang.String handleClientFirstMessage(java.lang.String message) throws org.apache.activemq.artemis.spi.core.security.scram.ScramExceptionHandles client's first message- Specified by:
handleClientFirstMessagein interfaceScramServerFunctionality- Parameters:
message- Client's first message- Returns:
- username extracted from the client message
- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException
-
prepareFirstMessage
public java.lang.String prepareFirstMessage(org.apache.activemq.artemis.spi.core.security.scram.UserData userData)
Description copied from interface:ScramServerFunctionalityPrepares server's first message- Specified by:
prepareFirstMessagein interfaceScramServerFunctionality- Parameters:
userData- user data needed to prepare the message- Returns:
- Server's first message
-
prepareFinalMessage
public java.lang.String prepareFinalMessage(java.lang.String clientFinalMessage) throws org.apache.activemq.artemis.spi.core.security.scram.ScramExceptionDescription copied from interface:ScramServerFunctionalityPrepares server's final message- Specified by:
prepareFinalMessagein interfaceScramServerFunctionality- Parameters:
clientFinalMessage- Client's final message- Returns:
- Server's final message
- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException
-
prepareFinalMessageUnchecked
public java.lang.String prepareFinalMessageUnchecked(java.lang.String clientFinalMessage) throws org.apache.activemq.artemis.spi.core.security.scram.ScramException- Throws:
org.apache.activemq.artemis.spi.core.security.scram.ScramException
-
isSuccessful
public boolean isSuccessful()
Description copied from interface:ScramServerFunctionalityChecks if authentication is completed, either successfully or not. Authentication is completed ifScramServerFunctionality.getState()returns ENDED.- Specified by:
isSuccessfulin interfaceScramServerFunctionality- Returns:
- true if authentication has ended
-
isEnded
public boolean isEnded()
Description copied from interface:ScramServerFunctionalityChecks if authentication is completed, either successfully or not. Authentication is completed ifScramServerFunctionality.getState()returns ENDED.- Specified by:
isEndedin interfaceScramServerFunctionality- Returns:
- true if authentication has ended
-
getState
public ScramServerFunctionality.State getState()
Description copied from interface:ScramServerFunctionalityGets the state of the authentication procedure- Specified by:
getStatein interfaceScramServerFunctionality- Returns:
- Current state
-
getDigest
public java.security.MessageDigest getDigest()
- Specified by:
getDigestin interfaceScramServerFunctionality
-
getHmac
public javax.crypto.Mac getHmac()
- Specified by:
getHmacin interfaceScramServerFunctionality
-
-