Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-8375

SlingPostServlet: :import operation must skip protected properties if present

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Servlets
    • AEM 6.3

    Description

      Description

      Posting JSON content to the SlingPostServlet with :import operation as documented at https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html#importing-content-structures fails when the JSON payload contains protected property names such as:

       

      "jcr:createdBy",
      "jcr:created",
      "jcr:createdBy",
      "jcr:baseVersion",
      "jcr:lastModified",
      "jcr:lastModifiedBy",
      "jcr:uuid",
      "cq:lastModified",
      "cq:lastModifiedBy",
      "cq:lastReplicated",
      "jcr:versionHistory",
      "rep:policy",
      "onTime",
      "offTime"
      
      # curl invocation
      
      curl -L -vv -u admin:admin \
      -F ":operation=import" \
      -F ":contentType=json" \
      -F ":name=newcontentnode" \
      -F ":content=@data.json" \
      -F ":replace=true" \
      -H 'Referer: http://localhost:4502/content/we-retail/language-masters/en' \
      -H 'User-Agent: Adobe-Campaign/5.0' \
       http://localhost:4502/content/we-retail/language-masters/en

       

      Suggested Improvement

      Add a new POST parameter :ignoreProperties which can take a comma-separated list of properties for the importer to skip.

      Error.log:

      more detailed error log attached to issue

       

      26.04.2019 16:34:55.298 *ERROR* [0:0:0:0:0:0:0:1 [1556289295274] POST /content/we-retail/language-masters HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ImportOperation Exception during response processing.
      javax.jcr.nodetype.ConstraintViolationException: Property is protected: jcr:createdBy = admin
      at org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.setProperty(NodeDelegate.java:525)
      at org.apache.jackrabbit.oak.jcr.session.NodeImpl$35.perform(NodeImpl.java:1376)
      at org.apache.jackrabbit.oak.jcr.session.NodeImpl$35.perform(NodeImpl.java:1364)
      at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:208)
      at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112)
      at org.apache.jackrabbit.oak.jcr.session.NodeImpl.internalSetProperty(NodeImpl.java:1364)
      at org.apache.jackrabbit.oak.jcr.session.NodeImpl.setProperty(NodeImpl.java:434)
      at org.apache.sling.jcr.contentloader.internal.DefaultContentCreator.createProperty(DefaultContentCreator.java:361)
      at org.apache.sling.jcr.contentloader.internal.readers.JsonReader.createProperty(JsonReader.java:226)
      at org.apache.sling.jcr.contentloader.internal.readers.JsonReader.createNode(JsonReader.java:199)
      at org.apache.sling.jcr.contentloader.internal.readers.JsonReader.createNode(JsonReader.java:197)
      at org.apache.sling.jcr.contentloader.internal.readers.JsonReader.parse(JsonReader.java:159)
      at org.apache.sling.jcr.contentloader.internal.DefaultContentImporter.importContent(DefaultContentImporter.java:93)
      at org.apache.sling.servlets.post.impl.operations.ImportOperation.doRun(ImportOperation.java:176)
      at org.apache.sling.servlets.post.AbstractPostOperation.run(AbstractPostOperation.java:97)
      at org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:205)
      at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146)
      at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342)
      at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:374)
      at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552)
      

      Attachments

        1. error-import-json.log
          15 kB
          Viorel Lupu

        Issue Links

          Activity

            People

              Unassigned Unassigned
              viorell Viorel Lupu
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 20m
                  3h 20m