Missing SOAP header in ECP response
Brent Putman
putmanb at georgetown.edu
Wed Dec 12 17:22:17 EST 2012
On 12/12/12 12:43 PM, Mitu Singh wrote:
>
> I have tried a number of ways to include the header, but it is not
> being set. This is how I have done it:
> HttpServletResponseAdapter outTransport = new
> HttpServletResponseAdapter(httpResponse, false);
> _BasicSAMLMessageContext_messageContext = *new*
> _BasicSAMLMessageContext_();
>
> messageContext.setOutboundMessageTransport(outTransport);
> SOAPObjectBuilder<Envelope> envelopeBuilder =
> (SOAPObjectBuilder<Envelope>)
> builderFactory.getBuilder(Envelope.DEFAULT_ELEMENT_NAME);
> Envelope envelope = envelopeBuilder.buildObject();
>
> messageContext.setOutboundMessage(envelope);
> messageContext.setOutboundSAMLMessage(authResponse);
> SAMLObjectBuilder<org.opensaml.saml2.ecp.Response>
> ecpResponseBuilder =
> (SAMLObjectBuilder<org.opensaml.saml2.ecp.Response>)
> builderFactory.getBuilder(org.opensaml.saml2.ecp.Response.DEFAULT_ELEMENT_NAME);
> org.opensaml.saml2.ecp.Response ecpResponse =
> ecpResponseBuilder.buildObject();
> ecpResponse.setSOAP11MustUnderstand(true);
>
> ecpResponse.setSOAP11Actor(org.opensaml.saml2.ecp.Response.SOAP11_ACTOR_NEXT);
>
> ecpResponse.setAssertionConsumerServiceURL("https://localhost:8443/sp_URL
> <https://localhost:8443/spring-security-saml2-sample>");
>
> SOAPHelper.addHeaderBlock(messageContext, ecpResponse);
>
Off-hand, this approach looks more or less correct, at least in broad
strokes. But since it isn't working, there must be something subtly
wrong. I have to run out the door soon, but I will later try and take a
closer look and see if I can spot what it is.
> And another way:
> SOAPObjectBuilder<Envelope> envelopeBuilder =
> _(SOAPObjectBuilder<Envelope>)
> builderFactory.getBuilder(Envelope./DEFAULT_ELEMENT_NAME/)_;
> Envelope envelope =
> envelopeBuilder.buildObject();
>
> SOAPObjectBuilder<Header> headerBuilder =
> _(SOAPObjectBuilder<Header>)
> builderFactory.getBuilder(Header./DEFAULT_ELEMENT_NAME/)_;
> Header header = headerBuilder.buildObject();
>
> SAMLObjectBuilder<org.opensaml.saml2.ecp.Response>
> ecpResponseBuilder =
> _(SAMLObjectBuilder<org.opensaml.saml2.ecp.Response>)
> builderFactory.getBuilder(org.opensaml.saml2.ecp.Response./DEFAULT_ELEMENT_NAME/)_;
> org.opensaml.saml2.ecp.Response ecpResponse =
> ecpResponseBuilder.buildObject();
> ecpResponse.setSOAP11MustUnderstand(*true*);
>
> ecpResponse.setSOAP11Actor(org.opensaml.saml2.ecp.Response./SOAP11_ACTOR_NEXT/);
>
> ecpResponse.setAssertionConsumerServiceURL("https://localhost:8443/sp
> <https://localhost:8443/spring-security-saml2-sample>");
> header.getUnknownXMLObjects().add(ecpResponse);
> envelope.setHeader(header);
> messageContext.setOutboundMessage(envelope);
> _messageContext.setOutboundSAMLMessage(authResponse)_;
This also looks off-hand correct, but again there must be some trivial
thing that is being omitted or something (or possibly we have a bug
somewhere.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://shibboleth.net/pipermail/dev/attachments/20121212/0016f29a/attachment-0001.html
More information about the dev
mailing list