MTOM with XI

hello
does any one know what are the adjustments that the XI needs to do (if he needs) in order to recieve a WS that send message as/with MTOM?
does any one has an example of MTOM XOP message?
I know it looks like a soap message, I am just not familar exactly how, so if any one has an example it will be appreciate to look at it.
Thanks
Kfir

hi,
if you have 7.1 you can use XI with MTOM
but there are certain prerequisites:
http://help.sap.com/saphelp_nwpi71/helpdata/en/76/fc9c3d9a864aef8139d70759a499fc/content.htm
Regards,
Michal Krawczyk

Similar Messages

  • @MTOM with @SchemaValidation causes IllegalStateException when streaming

    We are using Weblogic-10.3.3 and streaming documents from Documentum to web service clients via MTOM (using the @MTOM annotation).
    Our service was working fine when our EJB web service class only had the @MTOM annotation on it.
    However, adding @SchemaValidation annotation causes a "java.lang.IllegalStateException: closed" exception (AdminServer.log stack trace is below) when the web service response is being returned (to the client).
    In soapUI, the document's content type comes through, but the file size is 0.
    Somehow, @SchemaValidation logic is interfering with the MTOM streaming.
    Has anyone else encountered there and/or know the reason why this occurring? Is the schema validation reading the response stream first (to do its validation) and then, when the client tries to read the same response stream for the document content, there is no data in the stream (since it was read already by the schema validation)?
    Again, there is no problem when the @SchemaValidation annotation is not present.
    Thank you.
    java.lang.IllegalStateException: closed
         at com.documentum.fc.client.content.impl.BlockPuller.verifyOpen(BlockPuller.java:64)
         at com.documentum.fc.client.content.impl.BlockPuller.close(BlockPuller.java:69)
         at com.documentum.fc.client.content.impl.PullerInputStream.close(PullerInputStream.java:110)
         at com.documentum.fc.impl.util.io.InputStreamHandle.close(InputStreamHandle.java:45)
         at java.io.FilterInputStream.close(FilterInputStream.java:156)
         at javax.activation.DataHandler.writeTo(DataHandler.java:297)
         at com.sun.xml.ws.encoding.MtomCodec$ByteArrayBuffer.write(MtomCodec.java:206)
         at com.sun.xml.ws.encoding.MtomCodec.encode(MtomCodec.java:173)
         at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:258)
         at com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:368)
         at com.sun.xml.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:102)
         at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:534)
         at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:255)
         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:141)
         at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:210)
         at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:311)
         at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:223)
         at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:124)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at weblogic.wsee.jaxws.JAXWSServlet.service(JAXWSServlet.java:79)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3686)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    Hi,
    Have you found a resolution to this issue? If you havent, I know why you are getting those issues. Let me know if you are still resolving this.
    regards,
    Johnny

  • MTOM with Attachments

    Hi,
    I am trying to attach a zip file(could actually be any file) along with a MTOM msg. I gather from this link http://axis.apache.org/axis2/java/core/docs/mtom-guide.html#a33 that it could actually be an MTOM msg. In My options i set the following code
    options.setProperty(Constants.Configuration.ENABLE_SWA,Constants.VALUE_TRUE);
    options.setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
    options.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/xop+xml");
    options.setProperty(Constants.Configuration.CONTENT_TYPE, "application/xop+xml");
    but I am ending up at an error which says
    org.apache.axis2.AxisFault: The input stream for an incoming message is null.
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:92)
    at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
    Looking at the content_type, i see that type has been set to type="text/xml"
    If I disable SWA, then the content_type becomes type="application/xop+xml" which seems to make sense. As you can see, I tried setting the content_type but it does not make any difference. I think I am doing something fundamentally wrong.
    Can anyone suggest any pointers. Am I doing it the right way?
    Regards,

    Hi Amar,
    thanks for your reply, i know the mtom theory, but i don't know how to do it with sap pi on proxy side!
    (By the way, your link throws a 404!)
    Using soap adapter with enabled "keep Attachments" option, the MTOM-Attachment is getting processed, but on proxy side, using soap adapter (keeping attachments) to call proxy, it crashes on the backend side (version 701).
    I tried to make a webservice out of the proxy in soamanager, but i didn't get this working, as i have never done this. Also i didn't find an option for mtom in soamanager. I am also wondering why mtom is only supported in ws-adapter 7.10 but not in 7.11, why is this? And is it possible to use soap-adapter on OB-side and WS-Adapter on IB-side, or can i only use ws-adapter for direct communication?
    Lot's of questions i am facing ;-)...
    Kind regards,
    Markus

  • XML with MTOM-Attachments for BW 7.X

    Hi all,
    My question is regarding loading XML with MTOM-Attachments into BW 7.X.
    It is possible to load XML-Files with a push via a web service DataSource into BW 7.X. The new NetWeaver-Release 7.1 is capable of handling XML-Files with MTOM-attachments. What I do not understand is if and how the Web Service DataSource and the MTOM capabilities of NetWeaver work together.
    Does the capability of NetWeaver 7.1 enable BW to handle MTOM? If it is possible to use MTOM with BW, do I need Usage Type  PI to bring MTOM attachments into BW?
    I have checked several links regarding MTOM, e.g.
    http://help.sap.com/saphelp_nwpi71/helpdata/en/76/fc9c3d9a864aef8139d70759a499fc/frameset.htm 
    or
    https://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/fcbc97b6-0a01-0010-6594-f8208ff674f9&language=en
    Unfortunately I could not find an answer to my question there.
    Thanks and Regards,
    Felix

    Thanks Tammy for the quick reply. Apologies for asking this naive question but since these are planned innovations and subject to change - this means we will not get any of the following benefits if we migrate to BW 7.4 from BW 7.02 and use BO4.1 on top of it now. Yes integrated planning is not applicable to our client.
    SAP BW integrated planning
     SAP BW integrated planning and planning application kit support in Design Studio
     Planning on SAP BW unified models in SAP BW 7.4 for Analysis Office, and Design Studio
    Data connectivity  (Planned Innovation)
     Direct data access to SAP BW for Lumira
    User experience
     BW integrated planning for Design Studio support
     Lumira integration with SAP applications

  • MTOM support in the integration engine

    Hi,
    Short description of the process.
    3rd party application -> PI WSDL -> SAP ERP
    A 3rd party application sents a request to our WSDL on PI and the PI
    starts a process (BPM). After the process is finished, PI sents the
    result to SAP ERP over XI adapter.
    Because the 3rd party application cannot add authentication parameters
    for our Web Service we changed our URL to a service in SICF.
    sap->xi->engine and added default authentication parameters. So that when the 3rd party application sents a request to PI, PI will not ask for
    authentication.
    (this
    thread explains the problem with authentication and why we did used the
    SICF solution. first entry by Michal Krawczyk)
    Now, when the 3rd party sent a message (SOAP message with MTOM) with
    attachment it is recognized by PI as a Multipart message.
    The Service in SICF which gets executed when the message comes calls a
    class inside. (cl_xms_http_handler) This class gets an exception while
    parsing the MTOM enabled message. And it does not sent the message to the
    PI engine.
    Is the MTOM feature supported by this class? If yes, what may be the problem.
    Thanks.
    Sample MTOM Message:
    --MIMEBoundaryurn_uuid_B7A0A8F29AF9AF0E5F1285180614419
    content-type: application/xopxml; charset=UTF-8; type="application/soapxml"
    content-transfer-encoding: binary
    content-id: ïş
    ¢Sr ñ Fu02C6...
    MIMEBoundaryurn_uuid_B7A0A8F29AF9AF0E5F1285180614419

    Moved to Axis adapter which solved our problem

  • Attachments with BPEL itself...the UI part..?

    Hi friends!
    I saw that Oracle Does support Soap-with-Attachments(SwA), & now, even MTOM (with release 10.1.3.1)...which is indeed very good...! :)
    But suppose, i have a requirement of developing a Human-Task based BPEL in which there are lots of rounds of Approvals/Reviews & also the need for attaching Documents, Scanned Images of legal papers, etc...
    Now, the problem with using the MTOM, SwA, etc...is that the default UI for initiating the BPEL process-instance...(both the HTML form or the XML variant), does NOT present a simple, clear way that indicates that the user HAS to actually "attach" something as one of the inputs...! :-(
    Does anybody have any idea as to HOW a user initiating such a BPEL process instance would "attach" something at the start itself, as one of its inputs..!?
    Will it require developing a Specialized UI..??
    If so, how should we go about it..??
    That's Why, i believe that we can keep things simple & easy-to-use in such a scenario by simply having a "normal" Process-Input-Request, with ALL simple elements MINUS the Attachment part...& then, letting the Attachment be loaded in the task-flow via the Work-List application....{We have "Request for More info", & many other nice facilities...}
    What do you people feel about my idea...?!
    Any comments, suggestions in this regard would be very valuable...!
    Please do let me know...!
    Cheers..!

    Hi all,
    I have succeeded partially with my ESB idea for attachments for a BPEL process...
    I created an ESB project with 2 File-Adapters say, F1 & F2 both of which poll for input in the SAME local directory ...
    F1 is configured to pick-up .jpg files in raw mode...(this DOES send data to the BPEL in Base64 encoding automatically...but we'll have to de-code it manually..!?)
    F2 picks up .txt files & is configured to map the contents to a structured Schema...
    Now, i use another Routing system to "combine" the inputs from F1 & F2 using a transformation to create the INPUT to initiate/invoke my BPEL process which takes the Schema-part(some Text fields), PLUS a Base64Binary part as the input payload...!
    Now, my system seems to work as expected...
    It waits Till there are 2 files in my folder...a .jpg & a .txt file...
    But the problem is that it creates 2 different instances of my BPEL process --- one with ONLY the Base64 part & the other with Only the TEXT part filled in...
    Is there any problem in here...??
    Can we combine 2 inputs into 1 input in an ESB system before invoking a BPEL process..?
    Please let me know if you have any ideas/suggestions.....or suspicions...!
    From a real-world point of view, i Sincerely feel this would be a very important-yet-common scenario when BPEL is combined with Human Approvals/Interventions...& it would be great to know if there's anything to make this easier to use than what it is currently...!
    Thanks a lot..!

  • OSB: xs:base64 and MTOM - validation

    Hi,
    I have a xs:base64 that I would like to transfer on OSB using MTOM with include binary data by reference.
    I'm required to walidate the response before sending.
    Now the problem is, I get the schema validation error on this element. It says "did not expect the ctx:binary-content" in my xs:base64 element.
    Help please?

    It is very simple and the thread you are referring to describes that in full detail - just use Java Callout with javax.activation.DataSource as a return value. In Java Callout, you assign return value (your binary data) to a new OSB variable. Then use Replace action to put your variable into any other variable.

  • MTOM throws NullPointerException

    Hello,
    I need to transfer large files (12Mb) of diferent types (.pdf, .jpg, .doc, etc). I changed the return type to DataHandler and tried to enable MTOM in my webservice, but when I enabled it, after the method is executed, system throws a NullPointerException.
    I'm enabling MTOM with the annotation @MTOM, and if I just take off this annotation the webservice works correctly.
    Do you know of any problem using MTOM with Java 1.6.0_10? Do you have a suggestion of a better way to transfer it?
    Thanks

    Tested this with JDK 1.4 and it works with the following changes:
    Make these static:
    static public Writer out;
    static public void validateXml (String xmlSt)
    and, of course adding:
    import java.io.*;
    import org.xml.sax.*;
    import javax.xml.parsers.SAXParserFactory;
    Then here is what I used to test it:
    public class Test2 {
         static public void main(String args[]){
              System.out.println("Hi there");
              String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html> <head> <title> Ho there </title> </head> <body> <h1> Hi there </h1> </body> </html>";
              try {
                   xmlResHandler.validateXml(s);
              }catch (Exception ex){
                   ex.printStackTrace();
    }I think you problem make have to do with your management of the "out" Writer.

  • Streams in axis2

    I am writing a webservice wrapper on the top of media server developed in java to enable other language application can use it.
    For the sake of Streaming i used the MTOM with AXIS2.
    I'm unable to stream very big documents until i enable the following parameters in axis.xml
    <parameter name="enableMTOM">true</parameter>
    <parameter name="cacheAttachments">true</parameter>
    <parameter name="attachmentDIR">c:/tmp/</parameter>
    <parameter name="sizeThreshold">4000</parameter>
    But the problem is that is is storing the whole stream in the server at the give place (c:/tmp).
    Instead i want the Inputstream streamed to streaming sever.
    If i remove the last 3 lines client getting out of memory error.
    How would i do that.
    please help

    I cannot report success with 10g streams, better maintenance and more useful views to track streams (static and dynamic), but still fails (like in 9i) when I have job running 12 hours, with thousands inserts/deletes/updates.
    On source site I don't know how big should streams_pool_size parameter be, probably 5 GB, which we don't have, process constantly getting killed with:
    ORA-23603: STREAMS enqueue aborted due to low SGA
    On target side, messages are not applied, everything goes to "spillover' and STREAMS tablespace is growing and growing and growing (due to table where messages are queued).
    SO, STREAMS ARE NOT GOOD FOR HUGE BATCH JOBS WHERE WE WANT ALMOST REAL TIME REPLICATION TO TARGET SIDE

  • New OC4J 10g (10.1.3.1) Developer Preview now available for download!

    A Developer Preview of the new OC4J 10g (10.1.3.1) release is now available for download.
    This developer preview release is fully J2EE 1.4 compatible and offers numerous enhancments, including full support for the final EJB 3.0/JPA specifications and Common Annotations (JSR-250) support in the Web container. It also provides a complete Web Services stack with support of JAX-RPC, annotations based development using JSR-181, and attachment support including MIME, DIME and MTOM with support of streaming for large documents.
    See http://www.oracle.com/technology/tech/java/oc4j/10131/index.html for details.

    I've tried http://localhost:8888, but I get a "connection refused."
    I have since found the answer. The site http://localhost:8888/ will indeed work. The problem was that the java_home for oc4j was pointing to a Java Runtime Edition of 1.5.0, and so oc4j was not starting, since oc4j only works with 1.4.x.
    Still have the missing info from the readme, though.

  • Creating a WCF MTOM application with Java Client

    Well I am treading into new ground here.  I need to create a WCF that will pull files from a database in an image column and either send them to a Java service that will accept binary data.  We send an XML file to the Server which is running Java. 
    During the processing of the XML the message may indicate that there are files that need to be included (like attachments in email).  So the Java Service (I suppose) would send a request to a .NET WCF service requesting the files.  The service would
    then retrieve the files from the SQL Server (in the image column) and send them to the calling Java application.  I have been looking around the web some and run across MTOM and I suppose this is the best way to send this, but I have a couple of questions:
    1. Do I need to grab the files from the database and stream them to a temp file first, then use MTOM to send the files?
    2. Can I just send the files from the database to the Java client?  The files are read into a byte array and then saved as a binary data type in SQL Server. (Code to create the file below).
    3.  I am coming into this new so examples would be nice, I mean real basic stuff so I can understand how to make this WCF the correct way.  I have no control over the Java Client, I will let them deal with how to configure the data they get.
    Any help is appreciated.
    Code I use to store any file into SQL:
    Dim fs As New FileStream(filePath, FileMode.Open, FileAccess.Read)
    Dim ilen As Integer = CInt(fs.Length)
    Dim bFile(ilen - 1) As Byte
    fs.Read(bFile, 0, ilen)
    fs.Close()

    Hi,
    Welcome to MSDN.
    I would suggest you consider posting this issue in the forum Mr. Monkeyboy suggested.
    In addition, issues about java are not supported in these forums.
    Thanks for your understanding.
    Regards.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to do a service callout to a service with/without MTOM support

    I have a problem trying to call a business service from a proxy service as a service callout related to MTOM.
    Specifically, the service I have is a Java based web service with the following signature:
    void archive(byte[] bytes, String fileName)
    When the WSDL is generated it maps the byte array to base64Binary as follows:
    <xs:element name="archive">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="bytes" type="xs:base64Binary"/>
    <xs:element name="fileName" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    Now in order to call this I try to build the XML payload withint the proxy message flow and I get this (from the logger):
    <8/06/2009 01:07:12 PM NZST> <Debug> <AlsbStagesTransformRuntime> <BEA-000000> <Service callout request payload:
    <archive xmlns="http://mtm.oracle.com/tools">
    <bytes>
    <con:binary-content ref="cid:518df4b0:121bd6029c5:-7fd9" xmlns:con="http://www.bea.com/wli/sb/context"/>
    </bytes>
    <fileName>RQRETMAINT20090608130711.csv</fileName>
    </archive>
    as you can see the bytes are being passed by reference and then when the service is called I get the following ("*non-MTOM endpoint received a MTOM message*") error:
    <8/06/2009 01:07:13 PM NZST> <Debug> <AlsbPipeline> <BEA-000000> <RegistryOutbound_SB_New/ProxyServices/ftpRqRetMaintToRegistry: +PipelineContextImpl.generateFault - messageID:2169050999921023879-518df4b0.121bd6029c5.-7fdc, errorCode:BEA-382500, errorReason:OSB Service Callout action received SOAP Fault response, errorDetails:<xml-fragment xmlns:con="http://www.bea.com/wli/sb/stages/transform/config">
    <con:faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Server</con:faultcode>
    <con:faultstring>[Server CodecHandler] Failed to decode
    -> non-MTOM endpoint received a MTOM message</con:faultstring>
    <con:detail>
    <bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">weblogic.wsee.codec.CodecException: non-MTOM endpoint received a MTOM message
         at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:170)
         at etc
    </bea_fault:stacktrace>
    </con:detail>
    <con:http-response-code>500</con:http-response-code>
    </xml-fragment>>
    So it seems the business service expects the "bytes" passed by value whereas the proxy is passing by reference. I tried changing the proxy to not use MTOM by disabling XOP/MTOM support in the Message Content tab (actually I did this in the proxy that calls the one in question since it uses the local transport and so doesn't have such a tab) and leaving it enabled but pass by value and it had no effect for some reason.
    I've read the User Guide section on MTOM support but it was not that helpful so any pointers to better information would be much appreciated.
    regards
    Edited by: mdsrobbins on Jun 8, 2009 1:44 PM

    Can you test back-end MTOM end point through a route node and see if its working? I doubt the issue has nothing to do with SC but with the MTOM end-point implementation.
    non-MTOM endpoint received a MTOM message") error: hints that the service call out is sending a mtom message but the end-point is not accepting the message
    Manoj
    Edited by: mneelapu on Jun 8, 2009 11:25 AM

  • Binary Attachments - MTOM vs. SOAP with Attachments

    Hello everybody,
    i am kind of stuck by implementing a soap to proxy scenario! I wanted to use MTOM to transfer the messages together with the attachments, but until now i couldn't find out if this is possible at all using the ws-adapter with backend proxy (version 701)!
    I have seen this already:
    http://help.sap.com/saphelp_nwpi711/helpdata/de/48/d5a1fe5f317a4e8e35801ed2c88246/frameset.htm
    unfortunately im not a abap coder, but i can see using attachments in proxys should work!
    But how? Am i forced to used soap with attachments on sending webservice? If yes, have you got an example for me?
    I would appreciate any help!
    Thanks in advance,
    Markus

    Hi Amar,
    thanks for your reply, i know the mtom theory, but i don't know how to do it with sap pi on proxy side!
    (By the way, your link throws a 404!)
    Using soap adapter with enabled "keep Attachments" option, the MTOM-Attachment is getting processed, but on proxy side, using soap adapter (keeping attachments) to call proxy, it crashes on the backend side (version 701).
    I tried to make a webservice out of the proxy in soamanager, but i didn't get this working, as i have never done this. Also i didn't find an option for mtom in soamanager. I am also wondering why mtom is only supported in ws-adapter 7.10 but not in 7.11, why is this? And is it possible to use soap-adapter on OB-side and WS-Adapter on IB-side, or can i only use ws-adapter for direct communication?
    Lot's of questions i am facing ;-)...
    Kind regards,
    Markus

  • ABAP SOAP Client with MTOM

    Hi experts,
    I need to create a SOAP client in ABAP for a web service that uses MTOM (xop:include) to transfer binary files.
    I know how to create a client proxy in SE80 from WSDL, but I.have no idea how to send attachments with protocol MTOM.
    Does anybody know how to do this in ABAP?
    Thanks a lot!
    LUIS B.

    Hi there.
    Well, I couldn't get the ABAP Proxy working so I build the SOAP client from scratch using class CL_HTTP_CLIENT. It was harder because I had to take care of every aspect in the HTTP communication but in the end it was more flexible.
    I hope this helps.

  • MTOM combined with WS-Security (XML signature)

    I'm testing the support of MTOM together with WS-Security (XML-DSIG) on OEG. When verifying the XML signature I noticed I had to add the "Insert MTOM attachments"-filter first. Is this the right way? Shouldn't the signature verification do this transparently?
    My other question is how OEG handles the attachments? Does it page them to disk? What happens if my attachments are very large? With the default setup of OEG I encountered out-of-memory issues with attachments above 200MB
    Edited by: wsalembi on Sep 22, 2011 12:45 AM

    If you just sign the <xop:Include> element, you are effectively only signing the reference to the attachment, i.e. the value of the href attribute. This will only prevent someone changing the href to point to a different attachment.
    If you in-line the base64 encoded contents of the attachment into the XML message and only sign the base64 encoded string, you are only preventing anyone from changing the contents of the attachment.
    You are not stopping somebody from changing what the <xop:Include> href attribute points to.
    So I think there is value in signing BOTH the contents AND the <xop:Include> element so that:
    - The integrity of the contents of the attachment is ensured, and
    - The integrity of the reference to the attachment in the <xop:Include> element is ensured.
    Interestingly, the XOP spec acknowledges this issue in Section 6.1:
    http://www.w3.org/TR/xop10/#package_integrity
    6.1 XOP Package Integrity
    The integrity of Infosets optimized using XOP may need to be ensured. As XOP packages can be transformed to recover such Infosets (see 3.2 Interpreting XOP Packages), existing XML Digital Signature techniques can be used to protect them. Note, however, that a signature over the Infoset does not necessarily protect against modifications of other aspects of the XOP packaging; for example, an Infoset signature check might not protect against re-ordering of non-root parts.
    In the future a transform algorithm for use with XML Signature could provide a more efficient processing model where the raw octets are digested directly.
    In OEG, it would be possible to use 2 XML Signature Validation filters with an Insert MTOM Attachment filter to validate both signatures.
    The flow in the policy would be as follows:
    1. 1st XML Signature Filter :- Validate the Signature over the <xop:Include> element
    2. Insert MTOM Attachment Filter :- Inline the base64 encoded contents of the attachment
    3. 2nd XML Signature Filter :- Validate the Signature over the element now containing the in-lined base64 encoded data.
    This policy would ensure the integrity of the attachment contents AND the reference to this attachment in the <xop:Include> element.

Maybe you are looking for

  • A Smorgasbord of Problems, or, Is It Just Better to Leave it For Dead?

    I was on a bus trip yesterday afternoon when, in the middle of a song, the folder symbol popped up on my screen, informing me to go to Itunes support for further instruction. After doing so and reading the instructions, I attempted to restore it, onl

  • Error "Unable to find method:key" on UM configuration iView

    When i try to click on the UM configuration in System Administration --> System configuration i am getting the Error Unable to find method:key  Does any one came across the same Issue. Please help ?

  • Nudge position with arrow keys?

    When I shirnk and move video around the screen with the wireframe, I would like to be able to nudge it into place with the arrow keys. However, this simply moves my playhead back and forth in the timeline. No matter where I click, (viewer, canvas), I

  • My final cut pro has been slowing down unbearably and creating duplicates

    Hi. I have an appointment booked for the end of next week to have my laptop looked at but I was wondering if anyone might know what my issue is. I've edited 7 projects on final cut pro 10 and they've all been fine. For some reason every time I closed

  • Change phone after 13 months?

    I got my droid x last year in april and now my home key is stuck down. Not a big deal, just have to hit back alot to get to main screen. Now I saw a post in here that if I signed my contract before Janurary 16, 2011 and play a base calling plan of $4