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