Securing REST based Webservices using OSB

Can anyone please lead me to any pointers on securing the REST based webservices.
Thanks,
KC

REST is more or less, a pure HTTP service so it is as secure as that. From my perspective transport security (basic authentication, SSL) is the basic security requirement for a REST based web-service. As far as message security is concerned, you may use custom HTTP headers to pass the tokens/digest but again it requires transmission over SSL to become an effective solution.
If you really have tight requirement from message security perspective, then I would suggest going to SOAP rather than using REST.
Regards,
Anuj

Similar Messages

  • REST BASED  WEBSERVICES

    Hi,
    We Have a Legacy System based  on  REST BASED  WEBSERVICES, that  legacy  system  can  understand  only  HTTP  format(it does n't  support  SOAP ) our scenario  is  HTTP TO  RFC  SYNCHRONOUS.
    And   we  have  to  connect PI   with  REST BASED  WEBSERVICES     ?
    1---->How  can  we connect  PI  with  REST BASED  WEBSERVICES ?
    2---->and  how  to test  those    REST BASED  WEBSERVICES ?any  tool  for  that?
    Thanks,
    Nagaraju.

    Hi Nagaraju,
    you can sent message from PI via [http receiver adapter|http://help.sap.com/saphelp_nw2004s/helpdata/en/43/64dbb0af9f30b4e10000000a11466f/content.htm].
    For message from legacy to PI use a simple address, what is explained in [SAP help http sender adapter|http://help.sap.com/saphelp_nw2004s/helpdata/en/43/64db4daf9f30b4e10000000a11466f/content.htm]
    You can test http messages with Microsoft's tool [Wfetch|http://www.microsoft.com/download/en/details.aspx?id=21625] (in the net are hundreds of free ware http test tool available).
    Regards,
    Udo

  • Rest based webservices from plsql procedures/packages

    Guyz.
    Please let me know How to create Rest based webservices in jdeveloper tool from plsql procedures/packages.
    Im very much in need
    Thanks,

    Hi User ,
    Welcome to OTN !!
    You can refer to these links and figure out -
    http://docs.oracle.com/cd/E16162_01/user.1112/e17455/dev_web_services.htm#CHDJIFAE
    http://theblasfrompas.blogspot.com/2011/03/developing-restful-web-services-from.html
    Also for calling pl/sql packages from Java , use soemthing like this - http://www.coderanch.com/t/302171/JDBC/databases/execute-PL-SQL-program-Java

  • SOURCING10: Passing parameters to a Query Based webservice using JAVA

    Hi Experts,
    I have been working on consuming a Query based webservice published in Souricng10 in a simple JAVA class. The query has a filter parameter which is not mandatory. I am able to consume the webservice using the GET method and display the content of the webservice. But when i try to POST a value to the filter parameter of the query i am getting the following error:
    java.io.IOException : Server returned HTTP response code: 415 for URL: http://sapcild9.web.bc:55000/sourcing/ngservices/rest/query/Z_TEST_WS_QUERY/execute/
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    Following is the code which i have used:
       URL url = new URL("http://sapcild9.web.bc:55000/sourcing/ngservices/rest/query/Z_TEST_WS_QUERY/execute/");
       HttpURLConnection connection = (HttpURLConnection)url.openConnection();
       connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
       connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
       connection.setRequestProperty("Content-Length", "" +Integer.toString(urlParameters.getBytes().length));
       connection.setRequestProperty("Content-Language", "en-US");
       connection.setUseCaches (false);
       connection.setDoInput(true);
       connection.setDoOutput(true);
       connection.setAllowUserInteraction(true);
       connection.setInstanceFollowRedirects(false);
       connection.setRequestMethod("POST");
       connection.connect();
       //Send request
       OutputStream out = connection.getOutputStream();
       OutputStreamWriter wr= new OutputStreamWriter(out, "UTF-8");
       wr.write("EXTERNAL_ID");
       wr.write("=");
       wr.write(URLEncoder.encode("temp","UTF-8"));
       wr.close();
       out.close();
       is = connection.getInputStream();
       isr =new InputStreamReader(is);
       BufferedReader bufferReader = new BufferedReader(isr);
       String str; StringBuffer stringBuffer = new StringBuffer();
       while ((str = bufferReader.readLine()) != null) {
       stringBuffer.append(str);
       stringBuffer.append("\n");
       System.out.println(stringBuffer.toString());
       connection.disconnect();
       is.close();
    Please Advise how to proceed on this isssue?
    Thanks in advance.
    Srikanth Emani

    Hi Gael,
    your URL is made up of :
    [ProcedureName]?[parameter1]=[value1]&[parameter2]=[value2]
    creating URLs like this can have problems especially with spaces and punctuation.
    the answer is a FORM
    the following will create a hidden form :
    FORM ACTION="[ProcedureName]" METHOD="POST" name="F1"
    INPUT type="HIDDEN" name="[parameter1]" value="[value1]"
    INPUT type="HIDDEN" name="[parameter2]" value="[value2]"
    /FORM
    you can set the values in the form using:
    document.F1.[parameter1].value="abc123%%&&$$!";
    document.F1.submit();
    will submit the form and the PL/SQL procedure should receive the text as it was contained in the form.
    the only characters that can now cause problems are :
    " as it delimits the field.
    ' as it may cause problems in PL/SQL.
    \ as it is a special character.
    Regards Michael

  • Developing SOAP based Webservice using Axis 2 Eclipse plugin

    Hi,
    I want to develop a SOAP based Webservice which connects to the PostgreSQL DB , by fetching the data for the employeeId entered and display the results in the browser. I'm using using JDK 1.6, Tomcat 6.0, Axis 2.0 , with Axis 2 Eclipse Plugin. Please send me a sample code of how to build it, i am able find some examples on the internet, but none of them are related to connecting to the DB and fetching the data. It will be great if you guys can provide the sample application which does have the same functionality as mine. Please do respond as this is urgent. Thanks in advance..
    Thanks,
    Rithu

    Thanks Adhir Mehtaji, This is what i have come up with, developing a webservices based on SAAJ and deploying that in Tomcat server, here is the Webservice and the other related files:-
    public class EmployeeService {
         * This method returns the Employee Name
         * @param empId String
         public void getEmployeeName(SOAPEnvelope req, SOAPEnvelope resp) throws javax.xml.soap.SOAPException {
              System.out.println("Inside the getEmployeeName in Employee Service");
              IEmployeeDAO employeeDAO= null;
              employeeDAO = new EmployeeDAOImpl();
              SOAPBody body = resp.getBody();
              String empId = null;
              NodeList empIdNodeList = req.getBody().getElementsByTagName("empId");
              for( int i=0; i < empIdNodeList.getLength(); i++ ) {
                   Element empIdElementElement = (Element) empIdNodeList.item(i);
                   Node empIdNode = empIdElementElement.getChildNodes().item(0);
                   empId = empIdNode.getNodeValue();
                   System.out.println("the empId in the employee service is:::"+empId);
              addNode(body,"empName",employeeDAO.getEmployeeName(empId));
              //addNode(body,"segmentName1",custSegmentDAO.getSegmentName(ZipCode));
         private static void addNode(SOAPBody body,String nodeName,String nodeValue) throws SOAPException{
              body.addChildElement(nodeName).addTextNode(nodeValue);
         This Service is exposed as a Webservice which connects to the DAO and get the response for the EmpId.
         This is the client file:-
         public class GetEmployeeNameClient {
              public static void main(String[] args) throws Exception {
                   // Invoking the Webservice endpoint which is hosted (deployed) in Tomcat by passing the SOAP Message request
                   // Get the SOAP Message response , which contains the employee name for the empId 100
                   // Parse the SOAP Message response to get the employee name (response from the WS)
                   String[] nodeNames = { "empId" };
                   String[] nodeValues = { "100" };
                   SOAPMessage message = GetEmployeeNameClient.getMessageFactory(
                             "getEmployeeName", nodeNames, nodeValues);
                   SOAPConnection conn = SOAPConnectionFactory.newInstance()
                             .createConnection();
                   SOAPMessage response = conn.call(message,
                             "http://localhost:8080/axis/services/EmployeeService");
                   // If the response is not null then everything is fine with the WS.
                   System.out.println("the response is what???"+response);
                   System.out.println("\n Soap response:\n");
                   System.out.println("\nXML response\n");
                   // Create transformer
                   TransformerFactory tff = TransformerFactory.newInstance();
                   Transformer tf = tff.newTransformer();
                   // Get reply content
                   Source sc = response.getSOAPPart().getContent();
                   // Set output transformation
                   StreamResult result = new StreamResult(System.out);
                   tf.transform(sc, result);
                   System.out.println();
                   // For these to work we need to connect to the DB - jdbc:oracle:thin:@ora-b2cd:6473:b2cd to get the segment name
                   SOAPBody soapBody = response.getSOAPBody();
                   System.out.println("the soapBody is what???"+soapBody);
                   NodeList empNameNodeList = soapBody.getElementsByTagName("empName");
                   System.out.println("the empNameNodeList.getLength is::"+empNameNodeList.getLength());
                   for (int i = 0; i < empNameNodeList.getLength(); i++) {
                        System.out.println("inside the loop");
                        Element empNameElement = (Element) empNameNodeList.item(i);
                        System.out.println("the empNameElement is what???"+empNameElement);
                        Node empNameNode = empNameElement.getChildNodes().item(0);
                        System.out.println("the empNameNode is what???"+empNameNode);
                        System.out.println("Employee Name For empId is ...... "
                                  + empNameNode.getNodeValue());
              // Construct the SOAP Message request by passing the empId 100(should come from UI)
              private static SOAPMessage getMessageFactory(String methodName,
                        String[] nodeNames, String[] nodeValues) throws SOAPException {
                   SOAPMessage message = null;
                   try {
                        System.out.println("Inside the getMessageFactory");
                        MessageFactory messageFactory = MessageFactory.newInstance();
                        message = messageFactory.createMessage();
                        SOAPPart soapPart = message.getSOAPPart();
                        SOAPEnvelope envelope = soapPart.getEnvelope();
                        SOAPBody body = envelope.getBody();
                        SOAPElement bodyElement = body.addChildElement(envelope
                                  .createName(methodName));
                        for (int index = 0; index < nodeNames.length; index++) {
                             bodyElement.addChildElement(nodeNames[index]).addTextNode(
                                       nodeValues[index]);
                        message.saveChanges();
                        // View input
                        System.out.println("\n Soap request:\n");
                        message.writeTo(System.out);
                        System.out.println();
                   } catch (Exception e) {
                        e.printStackTrace();
                   return message;
         This client will send a SOAPMessage with EmpId (100) as a request and get the response from the Webservice as SOAPMessage , which
         contains the empname for the respective empid which is passed.
    I tested this service in the browser, it is up and running through the URL : http://localhost:8080/axis/services
    But when i try to access the webservice to get the response from my client program, i am getting the following SOAP Fault string:-
    <?xml version="1.0" encoding="UTF-8"?>
    <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:Fault>
    <faultcode>
    soapenv:Server.userException
    </faultcode>
    <faultstring>
    org.xml.sax.SAXNotRecognizedException: Feature: http://xml.org/sax/properties/lexical-handler
    </faultstring>
    <detail>
    <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">
    user-15bbc0db6e
    </ns1:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    My client path contains :-
    axis.jar;
    jaxrpc.jar;
    saaj.jar;
    commons-logging.jar;
    commons-discovery.jar;
    wsdlj4.jar;
    axis-ant.jar;
    log4j-1.2.4.jar
    xerces.jar
    activation.jar
    mail.jar
    Similary the in the d:/tomcat/webapps/axis/WEB-INF/lib,contains the same as that in client path.
    I am using Tomcat 6.0 , JDK 1.6, I have googled and found that the expection is due to "Xerces.jar" not in Tomcat/webapps/axis/WEB-INF/lib.
    I have copied xerces.jar in the said path, still the error persists. Please do provide a solution to this. Where i have gone wrong.
    I have one more query, If i have to rest a "list" as a response from the server (webservice), how i can add the list into the SOAPMessage? Whether i need to parse it and add the values one by one in the SOAPMessage? like
    <empname> xxxx</empname> <empage>25</empage>
    <empname> yyyy</empname> <empage>26</empage>
    Please answer these queries.
    Thanks,
    Rithu

  • Consume a third party REST Based Webservice from PeopleSoft

    We are in tools 8.49.33
    Using 'Consume Web Service' component we can only consume a WSDL based webservice I guess. But we have a requirement to consume to a third party webservice, for which we just have to invoke a URL with query string via HTTP GET and receive an XML response. Has anyone done this before?

    Three things to check:
    #1: Check your errorLog.html file in the PSIGW web app of your PeopleSoft server
    #2: Does your app server have to go through a proxy to connect to the internet? If so, did you configure integrationGateway.properties to use a proxy server? You can test this by trying to use ConnectorRequestURL for a plain old HTTP web site. If you get the same error, then it is likely a proxy issue.
    #3: If #2 passed, then it might have to do with certificates and you will need to review PeopleBooks for importing certificates for integration broker. I haven't had to do this before, but am pointing it out in case.

  • How to configure proxy services in OSB for Rest based services?

    how to configure proxy services in OSB for Rest based services implemented using Jersey (Rest).
    The Client need to contact OSB proxy servies by posting application/xml using jersey client and OSB proxy service will call the OSB business service.
    i would like to know how to get this request in OSB proxy service and send it to the business service and get the response back.

    I would suggest you refer to the below links:
    https://blogs.oracle.com/jeffdavies/entry/restful_services_with_oracle_s_1
    https://blogs.oracle.com/jamesbayer/entry/using_rest_with_oracle_service
    Hope this helps.
    Thanks,
    Patrick

  • Using OSB for Public API (REST)

    Hi there,
    Is it a good practice to use Oracle Service Bus to expose a PUBLIC REST API?
    The idea is to have a separeted OSB instance which will be in the WEB so that other partners and applications (Native Mobile, for instance) can access some of our services. The application layer will have many different applications, like SAP, JEE systems, Cobol and others. But the public API will be design in a more RESTful fashion.
    What about security?
    What about performance? (Parsing JMS, XML and others into JSON will probably create extra load into the OSB).
    What are be the advantages of using OSB instead of a more traditional Service Layer?
    P.S.: We are being careful with the design of our API, sometimes the underlying system doesn't help, so some transformation has to happen (more load!) in order to make the API elegant and meaningful.
    Cheers

    Personally, I'd prefer Collections as they are nice to work with. Their only annoying issue is certainly the constant casting as soon as you retrieve Objects from them.
    I do not consider the documentation of what those Collection include too big a problem. Just include a line for each Collection parameter stating "Set of Strings" or the like. I wouldn't even check the type through instanceof, I'd just cast. If a ClassCastException is thrown, I think that's the proper thing to do.
    As you might have noticed, there is a proposal of "Generics" for Java, which would adopt something like those template classes known in C++. There is even a beta implementation available, so you can go ahead and code your Set<String>. Time will tell if this proposal finds its way into the official Java standard, the drawback being a more complex syntax. If you want to know more about it, check out those links:
    http://forum.java.sun.com/forum.jsp?forum=316
    http://www.jcp.org/jsr/detail/14.jsp
    http://developer.java.sun.com/developer/earlyAccess/adding_generics

  • Call secure RestFul WebService with basic authorization via https

    Hi,
    is there a way to call a secure RestFul WebService with basic authorization via https from APEX?
    Database: Oracle 11g XE
    APEX: 4.2.1
    I have a solution by calling the WebService from Java which was called from the database via scheduled job (execute).
    As my hosting partner does not support Java I am looking for another option.
    Regards
    Markus

    Hi,
    I think its not possible, in this link you can find in more detail why.
    Its related with the use of wallets to acess https requests.
    http://www.apexninjas.com/blog/2011/06/https-access-with-utl_http-on-oracle-xe-has-anyone-managed-to-do-this/
    Edit: Because you are using Oracle XE
    Edited by: carlos.pereira on Jan 23, 2013 6:15 PM

  • Using relative-URI  in creating the REST based proxy service

    Hi,
    I am facing an issue when i am trying to create REST based proxy. i am looking at the urls given in the forum post Using Business Service that supports XML over HTTP in OSB
    I have created a conditional branch with xpath expression like *./ctx:transport/ctx:request/http:relative-URI/text()*
    and i am copying this value to $inbound as showin in the blog http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html. But when i typed the uri in browser its saying xml parser error unable to find <.
    Not sure of the reason. If i modify my proxy to use http-method as shown in the blog its working fine and that too only when i copied ./ctx:transport/ctx:request/http:http-metho/text() to $inbound. But when i copied the same to another variable like branchcond, i am getting same parsing error. And Is it that the variable has to be always $inbound?  So what should be the variable name for using relativeURI
    And my uri is going to be like the following, thats why i am planning to create the conditonal branch on relative-uri.
    http:/localhost:8001/proxy/RESTbasedPS/getGreeting?name=23
    http:/localhost:8001/proxy/RESTbasedPS/getFullName?firstName=Some&lastName=Thing
    Any leads in above error will help me.
    Thanks
    Siva

    When i created the Conditonal branch, its asking for two mandatory properties. One is 'selected path' and the other is 'variable'. My scenario i am trying to base my conditional branch based on relative uri, so i have given './ctx:transport/ctx:request/http:relative-URI/text()' for 'selected path' variable and giving the value 'inbound' for 'variable' property of conditional branch.
    i was trying to do this in similar fashion as given in the blog http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html, only thing is that i am using http:relative-URI rather http:http-method as shown in the blog.
    I am geting the following error in exact:
    XML Parsing Error: no element found
    Location: http://localhost:7001/proxy/RESTBasedPS/getGreeting?name=siva
    Line Number 1, Column 1:
    Please let me know if i am missing something or doing wrong with inbound variable.
    Thanks
    Siva

  • OSB with Rest JSON webservice

    Hi, I am new to OSB and working on making OSB as a pass thru for RestFul JSON webservices. I am able to get JSON response back in case of GET request however for POST request I am getting this error:
    <con:fault
    xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380000</con:errorCode>
    <con:reason>Unsupported Media Type</con:reason>
    <con:location>
    <con:node>AegisRouteNode</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    I have used transport header in response action to convert content type to application/json. I am not sure why it works perfectly for GET request but fails for POST.
    I appreciate any help that can be provided. Thanks.

    > I have used transport header in response action to convert content type to application/json
    Why in response? o_O
    My understanding of what is happening is that the remote server rejects your POST with HTTP 415. I.e. you need to set the Content-Type transport header in request pipeline.
    For GET though the server may just ignore the Content-Type header or lack thereof, and that's why it may work.
    Try to point your call via Fiddler to see the actual HTTP request and response, it should give you the idea what's going on.
    Vlad
    http://vladimirdyuzhev.com

  • Invalid security error when invoking secure webservice using SAML tokens

    I have deployed a JAX-WS webservice using a stateless session bean to wl 10.3.2 that uses a custom policy. The service deploys fine, but weblogic returns an HTTP error 500 with a SOAP fault. The fault states wsse:InvalidSecurity. The webservice security policy reqires SAML holder of key assertions and attributes. I have tried everything from running weblogic with Metro 1.5 to configuring SAML Identity Asserter Providers, etc with no luck. I even tried using the built in SAML 2.0 assymetric holder of key policy. What am I doing wrong? The XML of interest is attached.
    Thanks;
    -Dave.
    *[Sample message from client]*
    <?xml version="1.0" encoding="UTF-8"?>
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd" xmlns:exc14n="http://www.w3.org/2001/10/xml-exc-c14n#">
         <S:Header>
              <To xmlns="http://www.w3.org/2005/08/addressing">https://localhost:7002/NHINAdapterDocQuerySecured/AdapterDocQuerySecured</To>
              <Action xmlns="http://www.w3.org/2005/08/addressing">urn:gov:hhs:fha:nhinc:adapterdocquerysecured:RespondingGateway_CrossGatewayQueryRequestMessage</Action>
              <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
                   <Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
              </ReplyTo>
              <MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:fec656f8-a2be-4129-8412-34d9453e7cb2</MessageID>
              <wsse:Security S:mustUnderstand="1">
                   <wsu:Timestamp xmlns:ns17="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512" xmlns:ns16="http://www.w3.org/2003/05/soap-envelope" wsu:Id="_1">
                        <wsu:Created>2010-02-24T21:38:56Z</wsu:Created>
                        <wsu:Expires>2010-02-24T21:43:56Z</wsu:Expires>
                   </wsu:Timestamp>
                   <saml2:Assertion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:exc14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="96cdfb70-91a3-4baf-9da1-3ff07d249926" IssueInstant="2010-02-24T21:38:56.671Z" Version="2.0">
                        <saml2:Issuer Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">CN=SAML User,OU=SU,O=SAML User,L=Los Angeles,ST=CA,C=US</saml2:Issuer>
                        <saml2:Subject>
                             <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">UID=kskagerb*DoD</saml2:NameID>
                             <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
                                  <saml2:SubjectConfirmationData>
                                       <ds:KeyInfo>
                                            <ds:KeyValue>
                                                 <ds:RSAKeyValue>
                                                      <ds:Modulus>iwGksKFK2ZYDxftMa093TajW7V9TwHW7NiyT6bJ2p38zBwpehwMJ1ZO9V0hFihcz/BZ2MvQ1WA1l0KhUBSR/bMiu6WmZ0bJPjvXx41ewGw5YzTL2RbT1U2XXBHtPHjbkH5jqK5zk67F/NM26v+hw0fSZiqM1BAFp9F73hMHsNrc=</ds:Modulus>
                                                      <ds:Exponent>AQAB</ds:Exponent>
                                                 </ds:RSAKeyValue>
                                            </ds:KeyValue>
                                       </ds:KeyInfo>
                                  </saml2:SubjectConfirmationData>
                             </saml2:SubjectConfirmation>
                        </saml2:Subject>
                        <saml2:AuthnStatement AuthnInstant="2009-04-16T13:15:39.000Z" SessionIndex="987">
                             <saml2:SubjectLocality Address="158.147.185.168" DNSName="cs.myharris.net"/>
                             <saml2:AuthnContext>
                                  <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:X509</saml2:AuthnContextClassRef>
                             </saml2:AuthnContext>
                        </saml2:AuthnStatement>
                        <saml2:AttributeStatement>
                             <saml2:Attribute Name="urn:oasis:names:tc:xspa:1.0:subject:subject-id">
                                  <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">Karl S Skagerberg</saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:oasis:names:tc:xspa:1.0:subject:organization">
                                  <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">InternalTest2</saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:oasis:names:tc:xspa:1.0:subject:organization-id">
                                  <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">2.16.840.1.113883.4.349</saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:nhin:names:saml:homeCommunityId">
                                  <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">2.16.840.1.113883.4.349</saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:oasis:names:tc:xacml:2.0:subject:role">
                                  <saml2:AttributeValue>
                                       <hl7:Role xmlns:hl7="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" code="307969004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED_CT" displayName="Public Health" xsi:type="hl7:CE"/>
                                  </saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:oasis:names:tc:xspa:1.0:subject:purposeofuse">
                                  <saml2:AttributeValue>
                                       <hl7:PurposeForUse xmlns:hl7="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" code="TREATMENT" codeSystem="2.16.840.1.113883.3.18.7.1" codeSystemName="nhin-purpose" displayName="Use or disclosure of Psychotherapy Notes" xsi:type="hl7:CE"/>
                                  </saml2:AttributeValue>
                             </saml2:Attribute>
                             <saml2:Attribute Name="urn:oasis:names:tc:xacml:2.0:resource:resource-id">
                                  <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">500000000^^^&amp;1.1&amp;ISO</saml2:AttributeValue>
                             </saml2:Attribute>
                        </saml2:AttributeStatement>
                        <saml2:AuthzDecisionStatement Decision="Permit" Resource="https://158.147.185.168:8181/SamlReceiveService/SamlProcessWS">
                             <saml2:Action Namespace="urn:nhin:names:hl7:rbac:4.00:operation">EXECUTE</saml2:Action>
                             <saml2:Evidence>
                                  <saml2:Assertion ID="40df7c0a-ff3e-4b26-baeb-f2910f6d05a9" IssueInstant="2009-04-16T13:10:39.093Z" Version="2.0">
                                       <saml2:Issuer Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">CN=SAML User,OU=Harris,O=HITS,L=Melbourne,ST=FL,C=US</saml2:Issuer>
                                       <saml2:Conditions NotBefore="2009-04-16T13:10:39.093Z" NotOnOrAfter="2010-12-31T12:00:00.000Z"/>
                                       <saml2:AttributeStatement>
                                            <saml2:Attribute Name="AccessConsentPolicy" NameFormat="http://www.hhs.gov/healthit/nhin">
                                                 <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">Claim-Ref-1234</saml2:AttributeValue>
                                            </saml2:Attribute>
                                            <saml2:Attribute Name="InstanceAccessConsentPolicy" NameFormat="http://www.hhs.gov/healthit/nhin">
                                                 <saml2:AttributeValue xmlns:ns6="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns7="http://www.w3.org/2001/XMLSchema" ns6:type="ns7:string">Claim-Instance-1</saml2:AttributeValue>
                                            </saml2:Attribute>
                                       </saml2:AttributeStatement>
                                  </saml2:Assertion>
                             </saml2:Evidence>
                        </saml2:AuthzDecisionStatement>
                        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                             <ds:SignedInfo>
                                  <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                                  <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                                  <ds:Reference URI="#96cdfb70-91a3-4baf-9da1-3ff07d249926">
                                       <ds:Transforms>
                                            <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                                       </ds:Transforms>
                                       <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                                       <ds:DigestValue>VnukKqb4Bt1KWDKfy8SDfk1Hp2s=</ds:DigestValue>
                                  </ds:Reference>
                             </ds:SignedInfo>
                             <ds:SignatureValue>DUwjh/H3XSfUG250rTlLdihstDXY1+qkY9GaY81Iu7Ag4MgoGvGBrGjZOJ7YnssPdrqUGiURxf6k
    IBH7vaeXk24XvXP3F85WP9nBm+2M4BvGTplgOmAo0yuwze+90FvwILzFNmmX/tvy3QKTDHlh1rEx
    /Jqfm6q/56WW1suAbRY=</ds:SignatureValue>
                             <ds:KeyInfo>
                                  <ds:KeyValue>
                                       <ds:RSAKeyValue>
                                            <ds:Modulus>iwGksKFK2ZYDxftMa093TajW7V9TwHW7NiyT6bJ2p38zBwpehwMJ1ZO9V0hFihcz/BZ2MvQ1WA1l
    0KhUBSR/bMiu6WmZ0bJPjvXx41ewGw5YzTL2RbT1U2XXBHtPHjbkH5jqK5zk67F/NM26v+hw0fSZ
    iqM1BAFp9F73hMHsNrc=</ds:Modulus>
                                            <ds:Exponent>AQAB</ds:Exponent>
                                       </ds:RSAKeyValue>
                                  </ds:KeyValue>
                             </ds:KeyInfo>
                        </ds:Signature>
                   </saml2:Assertion>
                   <ds:Signature xmlns:ns17="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512" xmlns:ns16="http://www.w3.org/2003/05/soap-envelope" Id="_2">
                        <ds:SignedInfo>
                             <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                  <exc14n:InclusiveNamespaces PrefixList="wsse S"/>
                             </ds:CanonicalizationMethod>
                             <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                             <ds:Reference URI="#_1">
                                  <ds:Transforms>
                                       <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                            <exc14n:InclusiveNamespaces PrefixList="wsu wsse S"/>
                                       </ds:Transform>
                                  </ds:Transforms>
                                  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                                  <ds:DigestValue>oo99UrPhAcwla4Qbkdd9jAPn0cE=</ds:DigestValue>
                             </ds:Reference>
                        </ds:SignedInfo>
                        <ds:SignatureValue>ds4vqts8uCdJcNGo0uTPzId5UBX+GVrdztQPv823c1Zy9ZZGSfQC/GsBPM/EMbFInDPFsyT4e1QYZMCzmqLYnifWHlDQJb7oMJBokafavAqZda1B55Zzh3TSm6BqKWtB/DX17d6rLx/HPiLNZ9qsBfuGn3aTlUCpNsYA8ObBtp8=</ds:SignatureValue>
                        <ds:KeyInfo>
                             <wsse:SecurityTokenReference wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0">
                                  <wsse:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID">96cdfb70-91a3-4baf-9da1-3ff07d249926</wsse:KeyIdentifier>
                             </wsse:SecurityTokenReference>
                        </ds:KeyInfo>
                   </ds:Signature>
              </wsse:Security>
         </S:Header>
         <S:Body>
              <ns3:AdhocQueryRequest xmlns:ns2="urn:gov:hhs:fha:nhinc:gateway:samltokendata" xmlns:ns3="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" xmlns:ns4="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:ns5="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:ns6="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" maxResults="-1" startIndex="0" federated="false">
                   <ns3:ResponseOption returnComposedObjects="true" returnType="LeafClass"/>
                   <ns4:AdhocQuery home="urn:oid:2.16.840.1.113883.4.349" id="urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d">
                        <ns4:Slot name="$XDSDocumentEntryStatus">
                             <ns4:ValueList>
                                  <ns4:Value>('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')</ns4:Value>
                             </ns4:ValueList>
                        </ns4:Slot>
                        <ns4:Slot name="$XDSDocumentEntryPatientId">
                             <ns4:ValueList>
                                  <ns4:Value>'1012581676V377802^^^&amp;2.16.840.1.113883.4.349&amp;ISO'</ns4:Value>
                             </ns4:ValueList>
                        </ns4:Slot>
                   </ns4:AdhocQuery>
              </ns3:AdhocQueryRequest>
         </S:Body>
    </S:Envelope>
    *[Response from server:]*
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
         <env:Body>
              <env:Fault xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                   <faultcode>wsse:InvalidSecurity</faultcode>
                   <faultstring>weblogic.xml.crypto.api.MarshalException: weblogic.xml.dom.marshal.MarshalException: Failed to unmarshal {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}SecurityTokenReference, no SecurityTokenReference factory found for {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}KeyIdentifier ValueType: http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID</faultstring>
              </env:Fault>
         </env:Body>
    </env:Envelope>
    *[webservice WSDL]*
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Adapter Document Query WSDL
    -->
    <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="urn:gov:hhs:fha:nhinc:adapterdocquerysecured"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"
    xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
    xmlns:wsaws="http://www.w3.org/2005/08/addressing"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"
    xmlns:sc="http://schemas.sun.com/2006/03/wss/server"
    xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy"
    xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
    xmlns:sxnmp="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/NMProperty"
    name="AdapterDocQuerySecured"
    targetNamespace="urn:gov:hhs:fha:nhinc:adapterdocquerysecured">
    <documentation>Adapter Document Query</documentation>
    <types>
    <xsd:schema>
    <xsd:import namespace="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"
    schemaLocation="../schemas/ebRS/query.xsd"/>
    <xsd:import namespace="urn:gov:hhs:fha:nhinc:gateway:samltokendata"
    schemaLocation="../schemas/nhinc/gateway/SamlTokenData.xsd"/>
    </xsd:schema>
    </types>
    <message name="RespondingGateway_CrossGatewayQueryRequestMessage">
    <part name="body"
    element="query:AdhocQueryRequest"/>
    </message>
    <message name="RespondingGateway_CrossGatewayQueryResponseMessage">
    <part name="body"
    element="query:AdhocQueryResponse"/>
    </message>
    <portType name="AdapterDocQuerySecuredPortType">
    <operation name="RespondingGateway_CrossGatewayQuery">
    <input name="RespondingGateway_CrossGatewayQueryRequest"
    message="tns:RespondingGateway_CrossGatewayQueryRequestMessage"
    wsaw:Action="urn:gov:hhs:fha:nhinc:adapterdocquerysecured:RespondingGateway_CrossGatewayQueryRequestMessage"/>
    <output name="RespondingGateway_CrossGatewayQueryResponse"
    message="tns:RespondingGateway_CrossGatewayQueryResponseMessage"
    wsaw:Action="urn:gov:hhs:fha:nhinc:adapterdocquerysecured:RespondingGateway_CrossGatewayQueryResponseMessage"/>
    </operation>
    </portType>
    <binding name="AdapterDocQuerySecuredBindingSoap11" type="tns:AdapterDocQuerySecuredPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsp:PolicyReference URI="#RespondingGateway_Query_Binding_SoapPolicy"/>
    <operation name="RespondingGateway_CrossGatewayQuery">
    <soap:operation soapAction="urn:RespondingGateway_CrossGatewayQuery"/>
    <input name="RespondingGateway_CrossGatewayQueryRequest">
    <soap:body use="literal"/>
    <wsp:PolicyReference URI="#RespondingGateway_Query_Binding_Soap_Input_Policy"/>
    </input>
    <output name="RespondingGateway_CrossGatewayQueryResponse">
    <soap:body use="literal"/>
    <wsp:PolicyReference URI="#RespondingGateway_Query_Binding_Soap_Output_Policy"/>
    </output>
    </operation>
    </binding>
    <service name="AdapterDocQuerySecured">
    <port name="AdapterDocQuerySecuredPortSoap11"
    binding="tns:AdapterDocQuerySecuredBindingSoap11">
    <soap:address
    location="https://localhost:7002/NHINAdapterDocQuerySecured" />
    </port>
    </service>
    <!-- Define action property on each receiving message -->
    <vprop:property name="action" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:action"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>action</vprop:query>
    </vprop:propertyAlias>
    <!-- Define resource property on each receiving message -->
    <vprop:property name="resource" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:resource"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>resource</vprop:query>
    </vprop:propertyAlias>
    <!-- Define purposeForUseRoleCode property on each receiving message -->
    <vprop:property name="purposeForUseRoleCode" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:purposeForUseRoleCode"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>purposeForUseRoleCode</vprop:query>
    </vprop:propertyAlias>
    <!-- Define purposeForUseCodeSystem property on each receiving message -->
    <vprop:property name="purposeForUseCodeSystem" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:purposeForUseCodeSystem"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>purposeForUseCodeSystem</vprop:query>
    </vprop:propertyAlias>
    <!-- Define purposeForUseCodeSystemName property on each receiving message -->
    <vprop:property name="purposeForUseCodeSystemName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:purposeForUseCodeSystemName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>purposeForUseCodeSystemName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define purposeForUseDisplayName property on each receiving message -->
    <vprop:property name="purposeForUseDisplayName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:purposeForUseDisplayName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>purposeForUseDisplayName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userFirstName property on each receiving message -->
    <vprop:property name="userFirstName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userFirstName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userFirstName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userMiddleName property on each receiving message -->
    <vprop:property name="userMiddleName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userMiddleName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userMiddleName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userLastName property on each receiving message -->
    <vprop:property name="userLastName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userLastName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userLastName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userName property on each receiving message -->
    <vprop:property name="userName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userOrganization property on each receiving message -->
    <vprop:property name="userOrganization" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userOrganization"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userOrganization</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userRoleCode property on each receiving message -->
    <vprop:property name="userRoleCode" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userRoleCode"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userRoleCode</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userRoleCodeSystem property on each receiving message -->
    <vprop:property name="userRoleCodeSystem" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userRoleCodeSystem"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userRoleCodeSystem</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userRoleCodeSystemName property on each receiving message -->
    <vprop:property name="userRoleCodeSystemName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userRoleCodeSystemName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userRoleCodeSystemName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define userRoleCodeDisplayName property on each receiving message -->
    <vprop:property name="userRoleCodeDisplayName" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:userRoleCodeDisplayName"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>userRoleCodeDisplayName</vprop:query>
    </vprop:propertyAlias>
    <!-- Define expirationDate property on each receiving message -->
    <vprop:property name="expirationDate" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:expirationDate"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>expirationDate</vprop:query>
    </vprop:propertyAlias>
    <!-- Define signDate property on each receiving message -->
    <vprop:property name="signDate" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:signDate"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>signDate</vprop:query>
    </vprop:propertyAlias>
    <!-- Define contentReference property on each receiving message -->
    <vprop:property name="contentReference" type="xsd:string"/>
    <vprop:propertyAlias propertyName="tns:contentReference"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>contentReference</vprop:query>
    </vprop:propertyAlias>
    <!-- Define content property on each receiving message -->
    <vprop:property name="content" type="xsd:base64Binary"/>
    <vprop:propertyAlias propertyName="tns:content"
    messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage" part="body"
    sxnmp:nmProperty="org.glassfish.openesb.outbound.custom.properties">
    <vprop:query>content</vprop:query>
    </vprop:propertyAlias>
    <wsp:Policy wsu:Id="RespondingGateway_Query_Binding_SoapPolicy">
    <wsp:ExactlyOne>
    <wsp:All>
    <wsaws:UsingAddressing xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl"/>
    <sc:KeyStore wspp:visibility="private"
    aliasSelector="gov.hhs.fha.nhinc.callback.KeyStoreServerAliasSelector"
    callbackHandler="gov.hhs.fha.nhinc.callback.KeyStoreCallbackHandler"/>
    <sc:TrustStore wspp:visibility="private"
    callbackHandler="gov.hhs.fha.nhinc.callback.TrustStoreCallbackHandler"/>
    <sp:TransportBinding>
    <wsp:Policy>
    <sp:TransportToken>
    <wsp:Policy>
    <sp:HttpsToken>
    <wsp:Policy>
    <sp:RequireClientCertificate/>
    </wsp:Policy>
    </sp:HttpsToken>
    </wsp:Policy>
    </sp:TransportToken>
    <sp:Layout>
    <wsp:Policy>
    <sp:Strict/>
    </wsp:Policy>
    </sp:Layout>
    <sp:IncludeTimestamp/>
    <sp:AlgorithmSuite>
    <wsp:Policy>
    <sp:Basic128/>
    </wsp:Policy>
    </sp:AlgorithmSuite>
    </wsp:Policy>
    </sp:TransportBinding>
    <sp:EndorsingSupportingTokens>
    <wsp:Policy>
    <sp:SamlToken
    sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <sp:WssSamlV20Token11/>
    </wsp:Policy>
    </sp:SamlToken>
    </wsp:Policy>
    </sp:EndorsingSupportingTokens>
    <sp:Wss11>
    <wsp:Policy>
    <sp:MustSupportRefKeyIdentifier/>
    <sp:MustSupportRefIssuerSerial/>
    <sp:RequireSignatureConfirmation/>
    </wsp:Policy>
    </sp:Wss11>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <wsp:Policy wsu:Id="RespondingGateway_Query_Binding_Soap_Input_Policy">
    <wsp:ExactlyOne>
    <wsp:All>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <wsp:Policy wsu:Id="RespondingGateway_Query_Binding_Soap_Output_Policy">
    <wsp:ExactlyOne>
    <wsp:All>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <plnk:partnerLinkType name="AdapterDocQuerySecured">
    <!-- A partner link type is automatically generated when a new port type is added.
    Partner link types are used by BPEL processes. In a BPEL process, a partner
    link represents the interaction between the BPEL process and a partner service.
    Each partner link is associated with a partner link type. A partner link type
    characterizes the conversational relationship between two services. The
    partner link type can have one or two roles.-->
    <plnk:role name="AdapterDocQuerySecuredPortTypeRole"
    portType="tns:AdapterDocQuerySecuredPortType"/>
    </plnk:partnerLinkType>
    </definitions>
    Edited by: dvazquez1027 on Feb 25, 2010 5:10 PM
    Edited by: dvazquez1027 on Feb 25, 2010 5:22 PM

    Hi
    yes, I had the same issue and I found a solution.
    You need to request a patch for BUG 9212862 (already corrected in WLS 10.3.3) and do the follwing:
    javax.xml.ws.BindingProvider provider = (javax.xml.ws.BindingProvider)port;
    java.util.Map context = provider.getRequestContext();
    context.put(weblogic.wsee.jaxrpc.WLStub.POLICY_COMPATIBILITY_PREFERENCE, weblogic.wsee.jaxrpc.WLStub.POLICY_COMPATIBILITY_MSFT);      
    This will cause the SecurityMessageArchitect class of WLS to not send the SecurityTokenReference in the Soap security header.
    Please note that is evidently a non-comformity to the specs of microsoft:
    Please give a look at
    http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf (8.3 Signing Tokens)
    and also at:
    http://www.oasis-open.org/committees/download.php/16768/wss-v1.1-spec-os-SAMLTokenProfile.pdf
    (3.4 Identifying and Referencing Security Tokens)
    A SAML key identifier reference MUST be used for all (local and remote) references to SAML 1.1
    assertions. [...]
    All conformant implementations MUST be able to process SAML assertion references occurring in a
    <wsse:Security> header or in a header element other than a signature to acquire the corresponding
    assertion. A conformant implementation MUST be able to process any such reference independent of the
    confirmation method of the referenced assertion.
    It follows that the .NET 3.5 is a non conformat implementation: I would gladly know which is the position of Microsoft on that.
    ciao
    carlo

  • Sample "REST" service for context based routing in OSB

    Hi All,
    We have a requirement where we have to do context based routing in OSB.For that, we need to have a Rest Service which should do context based routing.In the payload there will be Action tag, based on the Action tag we need to invoke corresponding Business service, if you have any sample service like this please send it to me.
    As I am quite new to Rest services.It will be helpful if I get a sample service.
    Thanks In Advance

    http://prsync.com/oracle/restful-services-with-oracle-service-bus-6243/
    http://blogs.oracle.com/jamesbayer/2008/07/using_rest_with_oracle_service.html
    http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html
    Regards,
    Anuj
    Edited by: Anuj Dwivedi, TCS on Aug 17, 2010 3:02 PM

  • Call Webservice using REST and not SOAP

    Hi, I am looking for an example of calling (invoking) a webservice from the database using PLSQL. The webservice is using REST rather than SOAP and returning XML
    I have already got examples of how to call a webservice using SOAP but not for REST
    Regards
    Ash

    Using Fiddler while loading your WSDL in a browser, I can see that the WSDL is using HTTP Chunked encoding. You should configure JBoss to return the WSDL without chunked encoding.

  • Using REST-based data in SolMan

    Hi,
    In the [Apache Project ESME|http://incubator.apache.org/esme], we have made JMX-based data available via a REST interface. This is partially related to restrictions that are present in many cloud-based environments.  We are looking to see how existing enterprise monitoring systems might be able to use this data.
    Does anyone know if it is possible to use REST-based data in SolutionManager?
    Thanks.
    D.

    Hi Alfred
    I tried to use nested tables and varrays in forms several times but also wasn't able to do so. The problem is that on the client side there are not all the PL/SQL 8 features implemented. Look what the manual says:
    "Not all Oracle8 features are currently supported across this release.
    The major unsupported features are:
    - Collection types (nested tables and
    varying arrays, or varrays)
    - Stored procedures that return object
    values
    - Scalar datatypes NCHAR and NVARCHAR2
    You should also be aware that, although this release does support PL/SQL 8, client-side PL/SQL 8 does not yet fully support all the features in the Oracle8 Server. (Server-side PL/SQL 8 support is complete.)"
    So you'll have to wait for the next release or a patch I guess. Please correct me if I am mistake.
    Hope this was kind of useful
    Nik
    null

Maybe you are looking for