protected void populateVelocityContext(VelocityContext velocityContext, MessageContext<SAMLObject> messageContext,
String endpointURL) throws MessageEncodingException {
super.populateVelocityContext(velocityContext, messageContext, endpointURL);
SignatureSigningParameters signingParameters =
SAMLMessageSecuritySupport.getContextSigningParameters(messageContext);
if (signingParameters == null || signingParameters.getSigningCredential() == null) {
log.debug("No signing credential was supplied, skipping HTTP-Post simple signing");
return;
}
String sigAlgURI = getSignatureAlgorithmURI(signingParameters);
velocityContext.put("SigAlg", sigAlgURI);
String formControlData = buildFormDataToSign(velocityContext, messageContext, sigAlgURI);
velocityContext.put("Signature", generateSignature(signingParameters.getSigningCredential(),
sigAlgURI, formControlData));
KeyInfoGenerator kiGenerator = signingParameters.getKeyInfoGenerator();
if (kiGenerator != null) {
String kiBase64 = buildKeyInfo(signingParameters.getSigningCredential(), kiGenerator);
if (!Strings.isNullOrEmpty(kiBase64)) {
velocityContext.put("KeyInfo", kiBase64);
}
}
}