Either the Assertion isn't added to the security header prior to signing, or else the Id isn't stored on the context...
Colm. On Tue, Nov 25, 2014 at 4:51 PM, <stephen.ctr.chapp...@faa.gov> wrote: > I'm occasionally getting the below exception thrown out when (I think) > WSS4J tries to sign an Assertion. I can see the referenced ID getting > created by the AssertionWrapper, but sometime after that this exception is > coming out, but only under certain conditions that I'm still trying to > identify. Does anyone know what could cause this? > > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.calculateDigest(Reference.java:742) > at > org.apache.xml.security.signature.Reference.generateDigestValue(Reference.java:406) > at > org.apache.xml.security.signature.Manifest.generateDigestValues(Manifest.java:206) > at > org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:609) > at > org.opensaml.xml.signature.Signer.signObject(Signer.java:77) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.signObject(OpenSAMLUtil.java:234) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.signXMLObject(OpenSAMLUtil.java:216) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.toDom(OpenSAMLUtil.java:164) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.toDom(OpenSAMLUtil.java:115) > at > org.apache.ws.security.saml.ext.AssertionWrapper.toDOM(AssertionWrapper.java:305) > at > org.apache.ws.security.message.WSSecSAMLToken.getElement(WSSecSAMLToken.java:100) > at > org.apache.ws.security.message.WSSecSAMLToken.prependToHeader(WSSecSAMLToken.java:84) > at > org.apache.ws.security.message.WSSecSAMLToken.build(WSSecSAMLToken.java:133) > at > gov.faa.swim.ctk.harness.saml_11.driver.tests.AbstractWssSignatureTest$SamlTokenAction.execute(AbstractWssSignatureTest.java:214) > at > org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:232) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.access$200(WSS4JOutInterceptor.java:52) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:265) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:141) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) > at > org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:570) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:479) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335) > at > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:136) > at com.sun.proxy.$Proxy47.getPerson(Unknown Source) > at > gov.faa.swim.ctk.harness.wss.common.driver.tests.WsaMapAwarePersonManagerDecorator.getPerson(WsaMapAwarePersonManagerDecorator.java:69) > at > gov.faa.swim.ssri.wss.examples.common.impl.PersonManagerTestUtil.getPerson(PersonManagerTestUtil.java:44) > at > gov.faa.swim.ctk.harness.wss.common.driver.tests.PersonManagerTestStrategy.sendRequest(PersonManagerTestStrategy.java:18) > at > gov.faa.swim.ctk.harness.saml_11.driver.tests.AbstractWssSignatureTest.testNoSignature(AbstractWssSignatureTest.java:153) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at > org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) > at > org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) > at > org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) > at > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at > org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at > org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) > at > org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) > at > gov.faa.swim.ctk.harness.junit.InterruptableCompositeRunner.runChildren(InterruptableCompositeRunner.java:70) > at > gov.faa.swim.ctk.harness.junit.CompositeRunner.run(CompositeRunner.java:36) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at > gov.faa.swim.ctk.harness.junit.JUnitHarness$JUnitWorker.run(JUnitHarness.java:344) > at java.lang.Thread.run(Thread.java:662) > Caused by: > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Reference.java:614) > at > org.apache.xml.security.signature.Reference.calculateDigest(Reference.java:716) > ... 57 more > Caused by: > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Reference.java:429) > at > org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Reference.java:607) > ... 58 more > Caused by: > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.utils.resolver.implementations.ResolverFragment.engineResolveURI(ResolverFragment.java:85) > at > org.apache.xml.security.utils.resolver.ResourceResolver.resolve(ResourceResolver.java:298) > at > org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Reference.java:427) > ... 59 more > 02:52:47,833 | WARN | K-Saml11Driver-1 | PhaseInterceptorChain > | ache.cxf.common.logging.LogUtils 452 | Interceptor for { > http://faa.gov/swim/ssri/examples/2010/07/services}PersonManagerService#{http://faa.gov/swim/ssri/examples/2010/07/specs/personmanager}GetPerson > has thrown exception, unwinding now > java.lang.RuntimeException: org.apache.ws.security.WSSecurityException: > Error signing a SAML assertion > at > org.apache.ws.security.message.WSSecSAMLToken.prependToHeader(WSSecSAMLToken.java:89) > at > org.apache.ws.security.message.WSSecSAMLToken.build(WSSecSAMLToken.java:133) > at > gov.faa.swim.ctk.harness.saml_11.driver.tests.AbstractWssSignatureTest$SamlTokenAction.execute(AbstractWssSignatureTest.java:214) > at > org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:232) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.access$200(WSS4JOutInterceptor.java:52) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:265) > at > org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor$WSS4JOutInterceptorInternal.handleMessage(WSS4JOutInterceptor.java:141) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) > at > org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:570) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:479) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382) > at > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335) > at > org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:136) > at com.sun.proxy.$Proxy47.getPerson(Unknown Source) > at > gov.faa.swim.ctk.harness.wss.common.driver.tests.WsaMapAwarePersonManagerDecorator.getPerson(WsaMapAwarePersonManagerDecorator.java:69) > at > gov.faa.swim.ssri.wss.examples.common.impl.PersonManagerTestUtil.getPerson(PersonManagerTestUtil.java:44) > at > gov.faa.swim.ctk.harness.wss.common.driver.tests.PersonManagerTestStrategy.sendRequest(PersonManagerTestStrategy.java:18) > at > gov.faa.swim.ctk.harness.saml_11.driver.tests.AbstractWssSignatureTest.testNoSignature(AbstractWssSignatureTest.java:153) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > at > org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) > at > org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) > at > org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) > at > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at > org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at > org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at > org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) > at > org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) > at > gov.faa.swim.ctk.harness.junit.InterruptableCompositeRunner.runChildren(InterruptableCompositeRunner.java:70) > at > gov.faa.swim.ctk.harness.junit.CompositeRunner.run(CompositeRunner.java:36) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at > gov.faa.swim.ctk.harness.junit.JUnitHarness$JUnitWorker.run(JUnitHarness.java:344) > at java.lang.Thread.run(Thread.java:662) > Caused by: org.apache.ws.security.WSSecurityException: Error signing a > SAML assertion > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.signObject(OpenSAMLUtil.java:236) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.signXMLObject(OpenSAMLUtil.java:216) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.toDom(OpenSAMLUtil.java:164) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.toDom(OpenSAMLUtil.java:115) > at > org.apache.ws.security.saml.ext.AssertionWrapper.toDOM(AssertionWrapper.java:305) > at > org.apache.ws.security.message.WSSecSAMLToken.getElement(WSSecSAMLToken.java:100) > at > org.apache.ws.security.message.WSSecSAMLToken.prependToHeader(WSSecSAMLToken.java:84) > ... 46 more > Caused by: org.opensaml.xml.signature.SignatureException: Signature > computation error > at > org.opensaml.xml.signature.Signer.signObject(Signer.java:80) > at > org.apache.ws.security.saml.ext.OpenSAMLUtil.signObject(OpenSAMLUtil.java:234) > ... 52 more > Caused by: > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.calculateDigest(Reference.java:742) > at > org.apache.xml.security.signature.Reference.generateDigestValue(Reference.java:406) > at > org.apache.xml.security.signature.Manifest.generateDigestValues(Manifest.java:206) > at > org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:609) > at > org.opensaml.xml.signature.Signer.signObject(Signer.java:77) > ... 53 more > Caused by: > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Reference.java:614) > at > org.apache.xml.security.signature.Reference.calculateDigest(Reference.java:716) > ... 57 more > Caused by: > org.apache.xml.security.signature.ReferenceNotInitializedException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > Original Exception was > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Reference.java:429) > at > org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Reference.java:607) > ... 58 more > Caused by: > org.apache.xml.security.utils.resolver.ResourceResolverException: Cannot > resolve element with ID _68643B865B7F1CFBAA14169019677911206 > at > org.apache.xml.security.utils.resolver.implementations.ResolverFragment.engineResolveURI(ResolverFragment.java:85) > at > org.apache.xml.security.utils.resolver.ResourceResolver.resolve(ResourceResolver.java:298) > at > org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Reference.java:427) > ... 59 more > > Thanx, > Stephen W. Chappell > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com