How to generate soap header elemtn ds:X509Certificate in SAOP message?

Hello all,
could you please help me to solve the following issue?
I need to generate a following security header on weblogic 10.3:
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIICtTC.....</X509Certificate>
</X509Data>
</ds:KeyInfo>
</ds:Signature>
If I use a standard Weblogic WS-Policy file (e.g., Wssp1.2-2007-Wss1.0-X509-Basic256.xml), the following header is created (please ignore changes in namespaces):
<dsig:KeyInfo>
     <wsse:SecurityTokenReference
          xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
          xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd"
          xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
          wsse11:TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
          wsu:Id="str_vUsIPkGU5I26BGcy">
     <wsse:KeyIdentifier
          EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
          ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1">zgXqyWX5atWpNj5EhRsF7viA3uU=</wsse:KeyIdentifier>
     </wsse:SecurityTokenReference>
</dsig:KeyInfo>
The header in this case point to <wsse:BinarySecurityToken... which contains the certificate but it is not what I need. I need the certificate to be included directly in Keyinfo element.
Do you know how to achieve it, if I should modify a ws-policy file (and how in this case) or if I can somehow tell Weblogic how the result SOAP message should look like? Or will I have to implement this by myself using some existing java libraries and bypass Weblogic security?
Thanks in advance
Jaroslav

Eric,
Could you please recommand a good document on how to work with routing, stage, action ...?http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/consolehelp/proxyactions.html#wp1265888
http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/consolehelp/proxyactions.html#wp1319158
http://www.orafmwschool.com/oracle-service-bus-routing-and-transformation/
It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts).
Hope it helps !!
Regards,
Abhinav Gupta

Similar Messages

  • How to generate soap header using java code

    Hi,
    I need to generate the following soap header using java DOM.
    Can you send me some java code snippet to do so?
    <soapenv:Header>
    <api:RequesterCredentials soapenv:mustUnderstand="0" xmlns:api="urn:ThinkPod:api:ThinkPodAPI" xmlns:ebl="urn:ThinkPod:apis:eBLBaseComponents">
    <ebl:ThinkPodAuthToken>YourToken</ebl:ThinkPodAuthToken>
    <ebl:Credentials>
    <ebl:DevId>YourDevId</ebl:DevId>
    <ebl:AppId>YourAppId</ebl:AppId>
    <ebl:AuthCert>YourAuthCert</ebl:AuthCert>
    </ebl:Credentials>
    </api:RequesterCredentials>
    </soapenv:Header>

    You want to generate that on a mobile device or how is that related to CLDC and MIDP?

  • How to bind soap header using jax-rpc

    To Whom It May Concern:
    I am using Rad7, Ibm Websphere 6.1, on Windows XP.
    I created an SoapHeader first using a string and bind it using jax-ws.
    It works for jax-ws but unfortunately, my work services uses jax-rpc.
    Does anybody know how to bind the soap header using jax-rpc.
    Any help or hint would be greatly appreciated it.
    Here is my code:
    import org.apache.cxf.headers.Header;
    import org.apache.cxf.headers.Header.Direction;
    import org.apache.cxf.helpers.DOMUtils;
    import org.apache.cxf.binding.soap.SoapHeader;
    import javax.xml.namespace.QName;
    import java.io.StringReader;
    import java.util.List;
    import java.util.ArrayList;
    import javax.xml.ws.BindingProvider;
                   @Test
         public void testService() throws Exception {     
                   try
                        URL wsdlURL = new URL("http://localhost:9087/abc/services/ServiceABCService");
                        ServiceRequestServiceService service = new ServiceRequestServiceServiceLocator();
                        ServiceRequestService port = service.getServiceRequestService(wsdlURL);
                   //How to Add Soap Header using jax-ws
              String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><ABCHdrRq "
              + "xmlns=\"http://xmlns.ABCgc.net/ABC/2002/header/\" "
              + ">"
              + "<version>1.0</version><srcInfo><chType>abc</chType><chInst>0124</chInst>" +
                        "<appName>sSAR</appName><hostName>DW70210521</hostName><userId>fxue</userId>" +
                        "</srcInfo><startTimeStamp>2010-06-04T13:44:45.132</startTimeStamp><clientDt>2010-06-04T13:44:53.242</clientDt><serviceInfo><serviceName>ServiceRequestService</serviceName>" +
                        "<serviceFunc>addServiceRequest</serviceFunc></serviceInfo>" +
                   "<prevTransInfo><prevRqUID>BORS2010-06-04T13:41:10.2067f9368d1-8c5c</prevRqUID>" +     
                   "<prevRespTimestamp>2010-06-04T13:41:10.871</prevRespTimestamp>"+
                   "<prevRespEndTimestamp>2010-06-04T13:41:10.902</prevRespEndTimestamp>+</prevTransInfo>"+
                   "</ABCHdrRq>";
              SoapHeader dummyHeader1 = new SoapHeader(new QName("uri:http://xmlns.ABCgc.net/ABC/2002/header/", "ABCHdrRq"),
              DOMUtils.readXml(new StringReader(xml)).getDocumentElement());
              dummyHeader1.setDirection(Direction.DIRECTION_OUT);
              List<Header> headers = new ArrayList<Header>();
                   headers.add(dummyHeader1);
                   ((BindingProvider)port).getRequestContext().put(Header.HEADER_LIST, headers);
                   //How to Add Soap Header to the request using jax-ws
                   catch(Exception e)
                        System.out.println("Exception message:"+e.getMessage());
    Yours,
    Frustrated

    Well, how an attachment is processed depends on your application logic...if your application logic requires to processing attachments and verify it before processing the SOAP message, handlers could be better option.
    If you need to process the attachment while processing the SOAP message, you can do it in the service implementation class.
    In both the cases you need to get access to SOAPMessage object and from there get the attachments with getAttachments method.

  • How to view SOAP header generated from XML Gateway  ?

    Hi All,
    I am using XML Gateway integrate EBS and trading partner using web services.
    Currently I am having problem with including wsse authorization information in the outbound message of EBS.
    I am able to view the payload in the transaction monitor but not able to check the SOAP header of message.
    How to view the current SOAP header generated by EBS and/or include the wsse information which are required by recipient trading partners ?
    Thanks in advance for your help.
    Regards,
    Ram

    No, this XML is the whole XI message and it is not sent by the SOAP (axis) adapter. If you want to see exactly what is sent, try checking it with the TCPGateway tool as advised on the SOAP FAQ note
    [Note 856597 - FAQ: XI 3.0 / PI 7.0 / PI 7.1 SOAP Adapter|https://websmp230.sap-ag.de/sap(bD1wdCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=856597]
    Under question "Q: How can I trace the whole message?". Otherwise, on SXMB_MONI, try selecting the PAYLOAD item on the left menu and, on the payload on the right, right-click and select "VIEW SOURCE".

  • How to Capture SOAP Header in BPEL

    Hi All,
    I have a requirement to pass a value from SOAP Header to BPEL and has to capture the value in BPEL and manipulate the data.
    In the receive activity i created a variable and assigned Header to it, but iam getting NULL value when i check the instance, this is the code i used in receive
    activity.
    <receive name="receiveInput" partnerLink="bpelsensor_client" portType="client:BPELSensor" operation="process" variable="inputVariable" createInstance="yes"
    bpelx:inputHeaderVariable="headerID"/>
    Any suggestions how to do this?

    How did you define headerID?
    You can also see an example here:
    http://java.net/projects/oraclesoasuite11g/pages/BPEL
    Arik

  • How to view SOAP Header

    Hi Gurus,
    i have a simple questions to you (hopefully).
    At the moment i am working with SOAP AXIS Receiver Adapter because i need to add <wsse> Tags to my SOAP Header. (according to blog: /people/pravesh.puria/blog/2009/08/26/adding-usernametoken-timestamp-in-soap-adapter-using-axis-framework)
    I get no error for this configuration but i am wondering where i can have a look at the SOAP Header that will be transfered to the target url.
    when i go to CommChan-Monitoring and have a look into Message-Details-->Message-Content i only can view "SOAP Document" this looks to me like the internal SOAP Envelope, but this is not going out the target url right? And i also can have a look on the payload, but  there is no SOAP Header at all.
    thank you for your help
    Best Regards
    Udo

    No, this XML is the whole XI message and it is not sent by the SOAP (axis) adapter. If you want to see exactly what is sent, try checking it with the TCPGateway tool as advised on the SOAP FAQ note
    [Note 856597 - FAQ: XI 3.0 / PI 7.0 / PI 7.1 SOAP Adapter|https://websmp230.sap-ag.de/sap(bD1wdCZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=856597]
    Under question "Q: How can I trace the whole message?". Otherwise, on SXMB_MONI, try selecting the PAYLOAD item on the left menu and, on the payload on the right, right-click and select "VIEW SOURCE".

  • How to create SOAP Header elements using SAAJ??

    I am facing a problem when adding header elements under SOAP Header
    using SAAJ(api).
    I want to create a structure as following:
    I get a empty SOAP header obejct by writing code--> SOAPHeader header
    = envelope.getHeader();
    But not able to add SOAP header elements as specified in example
    below. I tried but its giving me error as
    "HeaderElements must be namespace qualified"
    CAN ANYBODY TELL ME THAT HOW TO ADD HEADER ELEMENTS USING SAAJ??
    <SOAP:Header>
    <AccountNumber>123</AccountNumber>
    <AuthorisationCode>test111</AuthorisationCode>
    <Source>abc</Source>
    <Market>01</Market>
    </SOAP:Header>

    I'm including this comment from some code I've just written after wrestling with this for hours (I've actually left it on another post as well). The upshot of it all is that you have to include a namespace URI when creating a header in SAAJ:
            NOTE: SOAP 1.1 requires that all header entries be namespace-qualified to
            namespace URI's.  The SAAJ 1.2 implementation requires a Name object with
            the namespace URI to make this happen even if the prefix used is already
            visible by being declared higher in the document (e.g. in the Envelope).
            However, the namespace URI is not present in the serialized header element
            as long as it was declared higher in the document.  In order to create a
            header element without a prefix (to conform to a web service definition
            that doesn't use a prefix in its headers, for example), leave the prefix
            null in the addHeaderElement() method. 
            For example, with a SOAPHeader 'hdr':
              //first create the name
              Name name = env.createName("my-local-name", null, "my-URI");
              //then create the header element
              SOAPHeaderElement he = hdr.addHeaderElement(name);
            This would result in an XML element that looked like this:
              <my-local-name xmlns="my-URI"/>
            This would allow SAAJ developers to create a header for a service that
            only expected a local name in its header elements (as many do!).  As long
            as the service doesn't choke on the attribute (validation!  evil!), this
            should work.
                                                        Rob Kemmer
                                                        01/12/2005
     

  • How to access SOAP header without using SOAP message handler

    I have a requirement to retrieve SOAP header information within each web services operation. So I can't use SOAP message handler. Is there any way to do that? BTW, I am not using workshop.
    Thanks.

    Howeve how can I put data into soap header in UDF? DynamicConfiguration won't work for soap header, right?
    Which data do you want ot put into the Header section.
    ASMA or Dynamic Configuration is used to read/ put the details from/ into the header elements.....
    Refer: http://help.sap.com/saphelp_nw04/helpdata/en/43/0a7d1be4e622f3e10000000a1553f7/frameset.htm
    From the help section:
    This information is not located in the payload of the message, but in additional message header fields.
    Regards,
    Abhishek.

  • In Receiver Mail Adapter ,how to ignore SOAP Header attachment

    HI Folks,
    Am using Receiver Mail Adapter and am getting 2 attachments.
    1. one is Soap header which contains Control records
    2. payload
    I want only Payload as attachment and need to ignore SOAP Header(AT00001.xml).
    The configuration is as below:-Trasport protocol : SMTP
                                                Message Protocol: XIALL
    Please provide Inputs.
    Thanks & Regards
    Ashok Reddy

    Hi Gagandeep,
    Scenario: File------>mail( Bypass scenario)
    i had posted file in FTP and am getting attachment properly but aditionally am getting ATT00001.xml as SoapHeader.this i need to ignore.
    PFB Module Parametrs i used:
    localejbs/AF_Modules/MessageTransformBean   LocalEnterpriseBean    transform
    Modulekey                      Parameterattribute                        value
    transform                      Transform.ContentDisposition            attachment;filename=”Pocr_860.txt”
    transform                     Tansform.ContentType                       text/plain
    Regards
    Ashok

  • How to set SOAP Header When Calling Business Service (OSB) Using Split-Join

    Hi,
    We need to call WSDL based webservice which requires heading static content for successful call. As we need to call the same service parallely, hence we want to use Split-Join.
    Looked at couple of forum links, noted that we can't play with headers while working with Split-Join.
    For curiosity, just want to check any option other than using proxy as mediator in setting header information.
    Regards
    Venkata Madhu

    Venkata,
    You still have the option, if you hv n't tried this one.
    To enable this capability, you must declare the header parts along with the body parts in a single request/response message in the Split-Join WSDL and in the WSDL of the proxy or business services invoked by the Split-Join. With the message parts declared in the WSDLs, SOAP header content is available to Split-Joins in the request/response message variables.
    Following is an example of the message and binding definitions in the WSDL.
    Message
    <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
    <wsdl:part name="retrieveCustomerOverviewByIdRequest"
    element="co:retrieveCustomerOverviewByIdRequest"/>
    *<wsdl:part name="serviceContext" element="sc:serviceContext"/>*
    </wsdl:message>
    Binding
    <wsdl:input>
    <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
    *<soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"part="serviceContext" use="literal"/>*
    </wsdl:input>
    hope it helps !!
    Regards,
    Abhinav

  • How to add SOAP header element?

    Hi,
    Scenario : RFC --> SOAP
    I would like to add parameters into the soap header :
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
          <SOAP:Header>
                *<OPER_REF>SAPPI</OPER_REF>*
          </SOAP:Header>
          <SOAP:Body>
              <ns2:createSapProductRequest xmlns:ns2="http://www.mycompnay.com/projectname">
                        <country>FR</country>
                     <division>1300</division>
                     <productStage/>
              </ns2:createSapProductRequest>
            </SOAP:Body>
    </SOAP:Envelope>
    So I made a Java Mapping to reach my goal so my message looks like :
    <ns0:Messages
         xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
         <ns0:Message1>
              <SOAP:Envelope
                   xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
                   <SOAP:Header>
                        <OPER_REF>SAPPI</OPER_REF>
                   </SOAP:Header>
                   <SOAP:Body>
                        <ns2:createSapProductRequest
                             xmlns:ns2="http://www.mycompany.com/myproject">
                             <country>FR</country>
                             <division>1300</division>
                             <productStage/>
                        </ns2:createSapProductRequest>
                   </SOAP:Body>
              </SOAP:Envelope>
         </ns0:Message1>
    </ns0:Messages>
    But when I launch the process here is what PI do :
    <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:Body>
      <soapenv:Header>
       <OPER_REF xmlns="">SAPPI</OPER_REF>
      </soapenv:Header>
      <soapenv:Body>
       <ns2:createSapProductRequest xmlns="http://www.mycompnay.com/myprojecty" xmlns:ns2="http://www.mycompnay.com/myprojecty">
        <country xmlns="">FR</country>
        <division xmlns="">1300</division>
        <productStage xmlns=""></productStage>
       </ns2:createSapProductRequest>
      </soapenv:Body>
    </soapenv:Body>
    </soapenv:Envelope>
    this request has been found thanks to the tool TCPGW. Has you can see there is 2 <soapenv:Body>
    What is wrong ?
    regards

    I was right, the solution is :
    My problem was the adapter. It was miss used.
    _The configuration is : _
    HTTP without SOAP Envelope and in the Module :
    Name : localejbs/AF_Modules/MessageTransformBean
    Type : L
    Key : Plain2XML
    _Module's Configuration : _
    Plain2XML -> Transform.ContentType -> text/xml;charset=utf-8
    All the XML messages was well formed even with the strange xmlns attributes.
    Regards

  • Can we edit SOAP Header for an Outbound ABAP Proxy message?

    Hi,
    Can we add some information such as dynamic configuration to the SOAP header for the outbound ABAP Proxy from ABAP report in SAP Application System?
    Regards,
    Praveen Gujjeti.

    Hi Praveen, have you found soulution for this? Can you share it with me?
    From here http://help.sap.com/saphelp_nw70/helpdata/EN/d6/49543b1e49bc1fe10000000a114084/content.htm
    The help described that:
    Set logging in the message header. This means that this message is logged even if logging is deactivated explicitly in the configuration. The logging information is part of the message header:
    ¡        <SAP:Logging>1</SAP:Logging>
    Activates logging explicitly.
    ¡        <SAP:Logging>0</SAP:Logging>
    Deactivates logging explicitly.
    So it means that we can edit SOAP header for outbound ABAP proxy. But i haven't find the correct method to do that.

  • How to change soap header in xml

    some one know how can i change the SOAP:mustUnderstand="1" to SOAP:mustUnde

    Hi,
    you could use the below alternative solution also as some Web services do not accept the message , if Content type is application/XML in the HTTP Header, it will accept only Text/XML. So While calling the Web service, the content has to be changed, This is possible using Module of the adapter as shown in the screen shot.
    HTTP Header field values before using the module
    User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
    content-id: [email protected]
    content-type: application/xml
    Content-Length: 1280
    Module name - localejbs/AF_Modules/MessageTranspormationBean
    Type - Local Enterprise Bean Module - This is defined by the user, but the same name should be given in the module configuration for passing the parameters. In this case “transform” In the module configuration ,
    Module key - In this case “transform”
    Parameter name - Transform.ContenType
    Parameter Value - text/xml;charset=utf-8
    Here you could use the required parameters and pass the values....:-))
    Thanks
    Swarup

  • How to pass  soap header variable for invoking siebel service in BPEL

    Hi,
    I am invoking siebel service in soa composite. siebel service have header variables username/password and session type. I have created global variable (message type) in BPEL anddeclare same in messages port in siebel wsdl. after that I passed the username/password and session type as hard coded in assign activity. I have deployed and tested this but, I have an exception like javax.xml.ws.soap.SOAPFaultException: Error Code: 10944642 Error Message: Error: Inbound SOAP Message - Session Token is missing or invalid or has expired
    Can you please help on this..

    Hi,
    check this thread
    http://help.sap.com/saphelp_nw04/helpdata/en/71/bcf3bf2ed7e142a5011b43c288f08c/content.htm
    HTTP Header parameters in iView.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/bc-jas/~form/handler
    May help you
    Regards,
    RK

  • How to generate dynamic header/footers?

    Hi,
    I'm still working at my bill-report :) I have to display the dealers logo+address as a "header" and legal disclaimers, customized bank details as a "footer". I guess, I can't do this with reports header and footer-sections? How can I solve the following problems?
    Let me explain again:
    I have a query with two resultgroups. I have a repeating frame using the whole page, assigned to resultgroup 1 (rg1), with some fields for the bill-details (address, bill-date, order-date, ...). Inside this frame I have some fields and another repeating frame, assigned to resultgroup 2 (rg1), with some fields for the bill-lines (item-name, how many items ordered, how much to pay per item, ...) in it.
    Additionally, I fetch two images (one for header, another for footer) in rg1. I want to display this two images as header and a footer. I can't do this using the header and footer-sections, because there is no datasource there. When I insert a repeating frame there too, no error occur s but there is also no image displayed.
    So I tried to insert the images in the mainsection. This works very well for the header (just placed at the top of the page, properties changed to "display on every page"), but not for the footer. It's always directly below the second repeating frame (the bill lines), not at the bottom of the page.
    How can I solve this? If I have to use "advanced layout"-settings, please tell me if I have to assign the image to some other object (base printing on) and if yes, to which object?
    Thanks again for any hint :)
    Jens

    Why don't your try putting it in the margin section. There is a header, body, and footer page, however, there is a margin section for each one of the these pages. Just put the legal disclaimer in the bottom margin section of the body, and then in the properties, choose to display it on last page.
    Martin

Maybe you are looking for