public void signDocument(Document samlDocument) throws ProcessingException { String signatureMethod = signatureAlgorithm.getXmlSignatureMethod(); String signatureDigestMethod = signatureAlgorithm.getXmlSignatureDigestMethod(); SAML2Signature samlSignature = new SAML2Signature(); if (signatureMethod != null) { samlSignature.setSignatureMethod(signatureMethod); } if (signatureDigestMethod != null) { samlSignature.setDigestMethod(signatureDigestMethod); } Node nextSibling = samlSignature.getNextSiblingOfIssuer(samlDocument); samlSignature.setNextSibling(nextSibling); if (signingCertificate != null) { samlSignature.setX509Certificate(signingCertificate); } samlSignature.signSAMLDocument( samlDocument, signingKeyName, signingKeyPair, canonicalizationMethodType); }