public String getSamlAssertion()

in src/main/java/com/aws/sap/sample/lambda/sap/oauth/LocalSamlTokenFactory.java [240:286]


	public String getSamlAssertion(Properties _cfg) throws SAMLException {
		try {
			Assertion assertion = createAssertion(_cfg);
			AssertionMarshaller marshaller = new AssertionMarshaller();
			Element plaintextElement = marshaller.marshall(assertion);
			String originalAssertionString = XMLHelper.nodeToString(plaintextElement);

			Credential signingCredential = getSigningCredential(_cfg);

			Signature signature = (Signature) getSAMLBuilder().getBuilder(Signature.DEFAULT_ELEMENT_NAME)
					.buildObject(Signature.DEFAULT_ELEMENT_NAME);

			signature.setSigningCredential(signingCredential);
			signature.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1);
			signature.setCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);

			KeyInfoBuilder keyInfoBuilder = (KeyInfoBuilder) getSAMLBuilder().getBuilder(KeyInfo.DEFAULT_ELEMENT_NAME);
			KeyInfo keyInfo = keyInfoBuilder.buildObject();

			X509DataBuilder x509databuilder = (X509DataBuilder) getSAMLBuilder()
					.getBuilder(X509Data.DEFAULT_ELEMENT_NAME);

			X509Data x509Data = x509databuilder.buildObject();
			X509CertificateBuilder x509CertificateBuilder = (X509CertificateBuilder) getSAMLBuilder()
					.getBuilder(org.opensaml.xml.signature.X509Certificate.DEFAULT_ELEMENT_NAME);

			org.opensaml.xml.signature.X509Certificate certXMLAssertion = x509CertificateBuilder.buildObject();

			certXMLAssertion.setValue(Base64.encodeBytes(signingCredential.getPublicKey().getEncoded()));
			x509Data.getX509Certificates().add(certXMLAssertion);
			keyInfo.getX509Datas().add(x509Data);
			signature.setKeyInfo(keyInfo);

			assertion.setSignature(signature);

			Configuration.getMarshallerFactory().getMarshaller(assertion).marshall(assertion);

			Signer.signObject(signature);

			plaintextElement = marshaller.marshall(assertion);
			originalAssertionString = XMLHelper.nodeToString(plaintextElement);
			//OAuthTracer.trace(OAuthTracer.XML_TYPE, "SAML Assertion", originalAssertionString.getBytes());
			return originalAssertionString;
		} catch (Exception ex) {
			throw new SAMLException(ex);
		}
	}