Got it. My problem was confusing building with unmarshalling. May be closing in on it.<div><br></div><div>The attachSamlAssertion method now fails in the Signer.signObject(signature) call because signature.XMLSignature is null. </div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>ERROR<span class="Apple-tab-span" style="white-space:pre">        </span>11691<span class="Apple-tab-span" style="white-space:pre">        </span>main<span class="Apple-tab-span" style="white-space:pre">        </span>DisaBlueprintSamlProcessorTest.java:76<span class="Apple-tab-span" style="white-space:pre">        </span>Exception<span class="Apple-tab-span" style="white-space:pre">        </span>com.technica.xacml2.runtime.XacmlFault: XMLObject does not have an XMLSignature instance, unable to compute signature</div>
</div></blockquote><div><br></div>Debugger shows XMLSignature variable is indeed null but the Signature interface has no way to set it. SignatureImpl does, but not sure I should use that and don't know what to set it to.<br>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><br></div></blockquote><div><div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>public void attachSamlAssertion(Document document)</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>Element envelopeElmt = document.getDocumentElement();</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>try</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>UnmarshallerFactory unmarshallerFactory = Configuration.getUnmarshallerFactory();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(envelopeElmt);</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>XMLObject envelopeObj = unmarshaller.unmarshall(envelopeElmt);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>Envelope envelope = (Envelope) envelopeObj;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Header header = envelope.getHeader();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>Body body = envelope.getBody();</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Security security = newSecurity();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>header.getUnknownXMLObjects().add(security);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Signature signature = newSignature();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>security.getUnknownXMLObjects().add(signature);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Timestamp timestamp = newTimeStamp();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>security.getUnknownXMLObjects().add(timestamp);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>MessageID messageID = newMessageID();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>security.getUnknownXMLObjects().add(messageID);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Assertion assertion = newAssertion();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>security.getUnknownXMLObjects().add(assertion);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Signer.signObject(signature);</div>
<div><span class="Apple-tab-span" style="white-space: pre; ">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>catch (Exception e)</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>throw new XacmlFault(e);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
</div><div><br></div><div>Here's how I'm building the signature:<div><div><br></div><div></div></div></div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>public Signature newSignature()</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>SignatureBuilder bldr = (SignatureBuilder) xmlObjectBuilderFactory.getBuilder(Signature.DEFAULT_ELEMENT_NAME);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>Signature sig = (Signature) bldr.buildObject();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>Credential credential = getCredential();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>sig.setSigningCredential(credential);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>sig.setCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>sig.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>SecurityConfiguration secConfiguration = Configuration.getGlobalSecurityConfiguration();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>NamedKeyInfoGeneratorManager namedKeyInfoGeneratorManager = secConfiguration.getKeyInfoGeneratorManager();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>KeyInfoGeneratorManager keyInfoGeneratorManager = namedKeyInfoGeneratorManager.getDefaultManager();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>KeyInfoGeneratorFactory keyInfoGeneratorFactory = keyInfoGeneratorManager.getFactory(credential);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>KeyInfoGenerator keyInfoGenerator = keyInfoGeneratorFactory.newInstance();</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>try</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>KeyInfo keyInfo = keyInfoGenerator.generate(credential);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>sig.setKeyInfo(keyInfo);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>catch (SecurityException e)</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>throw new XacmlFault(e);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>URIContentReference contentReference = new URIContentReference("");</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>contentReference.getTransforms().add(SignatureConstants.TRANSFORM_ENVELOPED_SIGNATURE);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>contentReference.getTransforms().add(SignatureConstants.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>contentReference.setDigestAlgorithm(SignatureConstants.ALGO_ID_DIGEST_SHA1);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>sig.getContentReferences().add(contentReference);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>return sig;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div>
</div></div></div>