Package org.apache.wss4j.dom.validate
Class UsernameTokenValidator
java.lang.Object
org.apache.wss4j.dom.validate.UsernameTokenValidator
- All Implemented Interfaces:
Validator
This class validates a processed UsernameToken, extracted from the Credential passed to
the validate method.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvalidate(Credential credential, RequestData data) Validate the credential argument.protected voidverifyCustomPassword(UsernameToken usernameToken, RequestData data) Verify a UsernameToken containing a password of some unknown (but specified) password type.protected voidverifyDigestPassword(UsernameToken usernameToken, RequestData data) Verify a UsernameToken containing a password digest.protected voidverifyPlaintextPassword(UsernameToken usernameToken, RequestData data) Verify a UsernameToken containing a plaintext password.protected voidverifyUnknownPassword(UsernameToken usernameToken, RequestData data) Verify a UsernameToken containing no password.
-
Constructor Details
-
UsernameTokenValidator
public UsernameTokenValidator()
-
-
Method Details
-
validate
Validate the credential argument. It must contain a non-null UsernameToken. A CallbackHandler implementation is also required to be set. If the password type is either digest or plaintext, it extracts a password from the CallbackHandler and then compares the passwords appropriately. If the password is null it queries a hook to allow the user to validate UsernameTokens of this type.- Specified by:
validatein interfaceValidator- Parameters:
credential- the Credential to be validateddata- the RequestData associated with the request- Returns:
- a validated Credential
- Throws:
WSSecurityException- on a failed validation
-
verifyCustomPassword
protected void verifyCustomPassword(UsernameToken usernameToken, RequestData data) throws WSSecurityException Verify a UsernameToken containing a password of some unknown (but specified) password type. It does this by querying a CallbackHandler instance to obtain a password for the given username, and then comparing it against the received password. This method currently uses the same logic as the verifyPlaintextPassword case, but it in a separate protected method to allow users to override the validation of the custom password type specific case.- Parameters:
usernameToken- The UsernameToken instance to verify- Throws:
WSSecurityException- on a failed authentication.
-
verifyPlaintextPassword
protected void verifyPlaintextPassword(UsernameToken usernameToken, RequestData data) throws WSSecurityException Verify a UsernameToken containing a plaintext password. It does this by querying a CallbackHandler instance to obtain a password for the given username, and then comparing it against the received password. This method currently uses the same logic as the verifyDigestPassword case, but it in a separate protected method to allow users to override the validation of the plaintext password specific case.- Parameters:
usernameToken- The UsernameToken instance to verify- Throws:
WSSecurityException- on a failed authentication.
-
verifyDigestPassword
protected void verifyDigestPassword(UsernameToken usernameToken, RequestData data) throws WSSecurityException Verify a UsernameToken containing a password digest. It does this by querying a CallbackHandler instance to obtain a password for the given username, and then comparing it against the received password.- Parameters:
usernameToken- The UsernameToken instance to verify- Throws:
WSSecurityException- on a failed authentication.
-
verifyUnknownPassword
protected void verifyUnknownPassword(UsernameToken usernameToken, RequestData data) throws WSSecurityException Verify a UsernameToken containing no password. An exception is thrown unless the user has explicitly allowed this use-case via WSHandlerConstants.ALLOW_USERNAMETOKEN_NOPASSWORD- Parameters:
usernameToken- The UsernameToken instance to verify- Throws:
WSSecurityException- on a failed authentication.
-