I solved the problem using SAX:

        public void invoke(MessageContext ctx) throws Exception {
        
        SAMLDataHCC samlData = SAMLUtilsHCC.generateSAML2();
        ByteArrayInputStream bais = new
ByteArrayInputStream(samlData.getTicket().getEncryptedData().getEncryptedData().getBytes());
        Document doc = new SAXBuilder().build(bais);
        Element saml = doc.detachRootElement();
        Element element = ctx.getOutMessage().getOrCreateHeader();        
        element.addContent(saml);        
        }

Now, The addContent method is a Element type (jdom), before i was using
addContent with String (no generate the correct structure, i don't know),
but using SAX y JDOM its my solution.



ivi_333 wrote:
> 
> Hello,
> 
> I am developing a client webservice with xfire but i have problems when i
> send the message.
> 
> I only need the client.
> 
> My code is the following:
> 
> 1) Obtaing the client instance:
> 
>       Client client = Client.getInstance(updateService);
>       client.addOutHandler(new OutHeaderHandler());
> 
> 2) The class OutHeaderHandler:
> 
> public class OutHeaderHandler extends AbstractHandler {
>       
>       public void invoke(MessageContext ctx) throws Exception {
>               
>               Element headerE = ctx.getOutMessage().getOrCreateHeader();
>               
>               SAMLDataHCC samlData = SAMLUtilsHCC.generateSAML2();
> 
>               headerE.addContent(samlData.toString());
> 
>       }
> }
> 
> Invoke the client and the server always response. The header not contain a
> valid header saml.
> 
> My message it would be something like:
> 
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>   <soapenv:Header>
>     <saml:Assertion ID="_0bd2b65e330953070f41df477f6eb92f"
> IssueInstant="2009-08-12T09:05:18.421Z" Version="2.0"
> xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
>        <.............>
>        <.............>
>      </saml:Asserton>
>    </soapenv:Header>
>    <soapenv:Body>
>         <..........>
>     </soapenv:Body>
> </soapenv:Envelope>
> 
> No problems with the saml assertion, but i don't know how i create the
> structure <soapenv:Header>
> 
> Any idea or Any example how I create a custom header with xfire ?
> 
> Thanks in advance.
> 
> Regards
> 
> 

-- 
View this message in context: 
http://www.nabble.com/help-adding-custom-header-with-xfire-only-the-client-part---SAML-tp25274750p25485797.html
Sent from the XFire - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to