Class ScramSHA256Mechanism

  • All Implemented Interfaces:
    Mechanism

    public class ScramSHA256Mechanism
    extends AbstractMechanism
    Implements the SASL Scram SHA 256 authentication Mechanism.
    • Field Detail

      • SCRAM_SHA_256

        public static final Symbol SCRAM_SHA_256
        A singleton instance of the symbolic mechanism name.
    • Constructor Detail

      • ScramSHA256Mechanism

        public ScramSHA256Mechanism()
        Creates an instance of the ScramSHA256Mechanism with a generated client Nonce.
    • Method Detail

      • getName

        public Symbol getName()
        Returns:
        the well known name of this SASL mechanism.
      • isApplicable

        public boolean isApplicable​(SaslCredentialsProvider credentials)
        Description copied from interface: Mechanism
        Allows the Mechanism to determine if it is a valid choice based on the configured credentials at the time of selection.
        Parameters:
        credentials - the login credentials available at the time of mechanism selection.
        Returns:
        true if the mechanism can be used with the provided credentials
      • getInitialResponse

        public ProtonBuffer getInitialResponse​(SaslCredentialsProvider credentials)
                                        throws javax.security.sasl.SaslException
        Description copied from interface: Mechanism
        Create an initial response based on selected mechanism. May be null if there is no initial response.
        Specified by:
        getInitialResponse in interface Mechanism
        Overrides:
        getInitialResponse in class AbstractMechanism
        Parameters:
        credentials - The credentials that are supplied for this SASL negotiation.
        Returns:
        the initial response, or null if there isn't one.
        Throws:
        javax.security.sasl.SaslException - if an error occurs generating the initial response.
      • getChallengeResponse

        public ProtonBuffer getChallengeResponse​(SaslCredentialsProvider credentials,
                                                 ProtonBuffer challenge)
                                          throws javax.security.sasl.SaslException
        Description copied from interface: Mechanism
        Create a response based on a given challenge from the remote peer.
        Specified by:
        getChallengeResponse in interface Mechanism
        Overrides:
        getChallengeResponse in class AbstractMechanism
        Parameters:
        credentials - The credentials that are supplied for this SASL negotiation.
        challenge - The challenge that this Mechanism should response to.
        Returns:
        the response that answers the given challenge.
        Throws:
        javax.security.sasl.SaslException - if an error occurs generating the challenge response.
      • verifyCompletion

        public void verifyCompletion()
                              throws javax.security.sasl.SaslException
        Description copied from interface: Mechanism
        Verifies that the SASL exchange has completed successfully. This is an opportunity for the mechanism to ensure that all mandatory steps have been completed successfully and to cleanup and resources that are held by this Mechanism.
        Specified by:
        verifyCompletion in interface Mechanism
        Overrides:
        verifyCompletion in class AbstractMechanism
        Throws:
        javax.security.sasl.SaslException - if the outcome of the SASL exchange is not valid for this Mechanism