Uploaded image for project: 'Pluto'
  1. Pluto
  2. PLUTO-651

PortalURLParserImpl.java incorrectly encodes/decodes forward slash characters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.0
    • 3.0.0
    • portlet container
    • None

    Description

      The FacesBridge TCK TestPage071: nonFacesResourceTest executes the following as part of the test:

      ResourceURL resourceURL = createResourceURL(facesContext);
      resourceURL.setResourceID("/tck/nonFacesResource");
      String url = resourceURL.toString();
      

      For Pluto 2.0 the value of url was:

      http://localhost:8080/pluto/portal/TestPage071
      /__rscom0x2liferay0x2faces0x2test0x2bridge0x2tck0x2main0x2portlet0x2chapter50x12Tests-nonFacesResourceTest-portlet!471674121%7C0
      /__ri0x3tck0x3nonFacesResource
      /__pmcom0x2liferay0x2faces0x2test0x2bridge0x2tck0x2main0x2portlet0x2chapter50x12Tests-nonFacesResourceTest-portlet!471674121%7C0_view
      /__wscom0x2liferay0x2faces0x2test0x2bridge0x2tck0x2main0x2portlet0x2chapter50x12Tests-nonFacesResourceTest-portlet!471674121%7C0_normal
      /__pr_chapter5_2Tests-nonFacesResourceTest-portletcom.liferay.faces.bridge.bridgeRequestScopeId
      /chapter50x12Tests-nonFacesResourceTest-portlet0xc3A0xc3A0xc3A5287BEBEF949829C7F12616CA7EF1B7B0xc3A0xc3A0xc3A1482361392468
      

      But in Pluto 3.0 the value is:

      http://localhost:8080/pluto/portal/TestPage071
      /__pdcom.liferay.faces.test.bridge.tck.main.portlet.chapter5_2Tests-nonFacesResourceTest-portlet%21471674121%7C0;0
      /__rs0
      /__clcacheLevelPage
      /__ri%2Ftck%2FnonFacesResource
      /__rp0;chapter5_2Tests-nonFacesResourceTest-portletcom.liferay.faces.bridge.bridgeRequestScopeId:chapter5_2Tests-nonFacesResourceTest-portlet%3A%3A%3A87AE28B622503E4C8BAC99770BBD56EF%3A%3A%3A1482361063580
      

      The important difference for this issue, is that with Pluto 2.0 the forward slashes in "/tck/nonFacesResource" are encoded as "0x3" whereas in Pluto 3.0 they are encoded as "%2F"

      The problem is that Tomcat treats the presence of "%2F" in the URL as the same as a forward slash character, which causes the Pluto PortletDriverServlet.java class to not get invoked.

      Attachments

        Activity

          People

            Unassigned Unassigned
            ngriffin7a Neil Griffin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: