ut.setPassword("clarinet");
ut.addNonce(doc);
ut.addCreated(true, doc);
// Add a password
PasswordString password = new PasswordString();
password.setValue(ut.getPassword());
password.setType(WSConstants.PASSWORD_DIGEST);
JAXBElement<PasswordString> passwordType =
new JAXBElement<PasswordString>(
QNameConstants.PASSWORD, PasswordString.class, password
);
usernameToken.getAny().add(passwordType);
// Add a nonce
EncodedString nonce = new EncodedString();
nonce.setValue(ut.getNonce());
nonce.setEncodingType(WSConstants.SOAPMESSAGE_NS + "#Base64Binary");
JAXBElement<EncodedString> nonceType =
new JAXBElement<EncodedString>(
QNameConstants.NONCE, EncodedString.class, nonce
);
usernameToken.getAny().add(nonceType);
// Add Created value
String created = ut.getCreated();
Element createdElement = doc.createElementNS(WSConstants.WSU_NS, "Created");
createdElement.setAttributeNS(WSConstants.XMLNS_NS, "xmlns", WSConstants.WSU_NS);
createdElement.setTextContent(created);
usernameToken.getAny().add(createdElement);
ReceivedToken validateTarget = new ReceivedToken(tokenType);
tokenRequirements.setValidateTarget(validateTarget);
assertTrue(usernameTokenValidator.canHandleToken(validateTarget));
TokenValidatorResponse validatorResponse =
usernameTokenValidator.validateToken(validatorParameters);
assertTrue(validatorResponse != null);
assertTrue(validatorResponse.isValid());
Principal principal = validatorResponse.getPrincipal();
assertTrue(principal != null && principal.getName() != null);
// Expected failure on a bad password
password.setValue("badpassword");
validatorResponse = usernameTokenValidator.validateToken(validatorParameters);
assertTrue(validatorResponse != null);
assertFalse(validatorResponse.isValid());
}