Package com.ongres.scram.common.message
Class ServerFinalMessage
java.lang.Object
com.ongres.scram.common.message.ServerFinalMessage
- All Implemented Interfaces:
StringWritable
Constructs and parses server-final-messages. Formal syntax is:
server-error = "e=" server-error-value
server-error-value = "invalid-encoding" /
"extensions-not-supported" / ; unrecognized 'm' value
"invalid-proof" /
"channel-bindings-dont-match" /
"server-does-support-channel-binding" /
; server does not support channel binding
"channel-binding-not-supported" /
"unsupported-channel-binding-type" /
"unknown-user" /
"invalid-username-encoding" /
; invalid username encoding (invalid UTF-8 or
; SASLprep failed)
"no-resources" /
"other-error" /
server-error-value-ext
; Unrecognized errors should be treated as "other-error".
; In order to prevent information disclosure, the server
; may substitute the real reason with "other-error".
server-error-value-ext = value
; Additional error reasons added by extensions
; to this document.
verifier = "v=" base64
;; base-64 encoded ServerSignature.
server-final-errorMessage = (server-error / verifier)
["," extensions]
Note that extensions are not supported (and, consequently, error message extensions).- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Possible error messages sent on a server-final-message. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionServerFinalMessage
(byte[] verifier) Constructs a server-final-message with no errors, and the provided server verifierConstructs a server-final-message which represents a SCRAM error. -
Method Summary
Modifier and TypeMethodDescriptiongetError()
byte[]
boolean
isError()
Whether this server-final-message contains an errorstatic ServerFinalMessage
Parses a server-final-message from a String.toString()
writeTo
(StringBuffer sb) Write the class information to the given StringBuffer.
-
Field Details
-
verifier
private final byte[] verifier -
error
-
-
Constructor Details
-
ServerFinalMessage
Constructs a server-final-message with no errors, and the provided server verifier- Parameters:
verifier
- The bytes of the computed signature- Throws:
IllegalArgumentException
- If the verifier is null
-
ServerFinalMessage
Constructs a server-final-message which represents a SCRAM error.- Parameters:
error
- The error- Throws:
IllegalArgumentException
- If the error is null
-
-
Method Details
-
isError
public boolean isError()Whether this server-final-message contains an error- Returns:
- True if it contains an error, false if it contains a verifier
-
getVerifier
public byte[] getVerifier() -
getError
-
writeTo
Description copied from interface:StringWritable
Write the class information to the given StringBuffer.- Specified by:
writeTo
in interfaceStringWritable
- Parameters:
sb
- Where to write the data.- Returns:
- The same StringBuffer.
-
parseFrom
public static ServerFinalMessage parseFrom(String serverFinalMessage) throws ScramParseException, IllegalArgumentException Parses a server-final-message from a String.- Parameters:
serverFinalMessage
- The message- Returns:
- A constructed server-final-message instance
- Throws:
ScramParseException
- If the argument is not a valid server-final-messageIllegalArgumentException
- If the message is null or empty
-
toString
-