Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-7317

Non-URL encoded Content-Id href does not seem be serialized by CXF's AttachmentSerializer

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Done
    • 3.1.10
    • 3.1.16, 3.2.5
    • Core
    • None
    • Moderate

    Description

      CXF-6484 states that,

      >> URL-encoded content ID for MTOM attachments causes problems with web service clients. This is effectively a regression on:
      https://issues.apache.org/jira/browse/CXF-2669

      For example, If the namespace is "https://cxf.apache.org/" for the service endpoint, then the content id is now:
      5726d366-df25-4945-9f3b-3003a2ae8a70-3@http%3A%2F%2Fcxf.apache.org%2F

      It was previously:
      5726d366-df25-4945-9f3b-3003a2ae8a70-3@cxf.apache.org

      Hence,

      Actual results:
      Content Id contains the full namespace (as URL) which is URL encoded: 5726d366-df25-4945-9f3b-3003a2ae8a70-3@http%3A%2F%2Fcxf.apache.org%2F

      Expected results:
      Content id does not require encoding and only contains hostname: 5726d366-df25-4945-9f3b-3003a2ae8a70-3@cxf.apache.org

      With the attached reproducer, here's what the results looks like,

      Actual Result - href="cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn%3Awsc.td.com%2Fcis%2F2010%2F01%2F19

      Expected Result -
      href="cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn:Awsc.td.com/cis/2010/01/19

      The difference here compared to the fix for CXF-6484, is that a non-url encoded href using namespace with 'urn:' for the attachments is used.

      For example, like the below in the @WebService class,
      @WebService(targetNamespace = "urn:wsc.td.com/cis/2010/01/19")
      To me, it seems that the fix for CXF-6484 does not work for non-url encoded href.

      I.e After the fix of CXF-6484,

      Actual Result - href="cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn%3Awsc.td.com%2Fcis%2F2010%2F01%2F19

      Expected Result -
      href="cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn:Awsc.td.com/cis/2010/01/19

      It looks like CXF's AttachmentSerializer is not able to serialize the forward slashes or the AttachmentUtil needs to be changed.
      I am not sure if the proper urn: namespaces should be of format, i.e urn:com.namespace.someResource or it can be also like, urn:com/namespace/someResource.

      Can we make CXF to interpret and display the href in the Content-Id with non-url namespace as cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn:Awsc.td.com/cis/2010/01/19 ?

      instead of

      href="cid:0842d204-23ec-4b6f-955b-0e38a4c2f35a-1@urn%3Awsc.td.com%2Fcis%2F2010%2F01%2F19

      Attachments

        1. mtomExample.war
          3 kB
          Viral Gohel

        Issue Links

          Activity

            People

              deki Dennis Kieselhorst
              vrlgohel Viral Gohel
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: