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

Integration of 3rd party servlet filters problematic

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • Engine 2.0.4
    • Engine 2.1.0
    • Engine
    • None
    • Windows Vista,
      java version "1.6.0_13"
      Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
      Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)

    Description

      There is a problem within the chain handling: the 3rd party filter uses it's own wrapper for requests and response, and supplies it to the chain in the chain.doFilter() call. This leads to a ClassCastException on line 54 of AbstractSlingFilterChain:
      ...
      RequestProgressTracker tracker = ((SlingHttpServletRequest) request).getRequestProgressTracker();
      ...

      I am not sure if this cast is valid in the context of a filter chain. On the other hand I am not sure wether such a use case (filter that manipulates request and response) has a chance to run in Sling.

      ==> Please note that this servlet filter needs to run as early as possible in the filter chain

      java.lang.ClassCastException: org.webcastellum.RequestWrapper cannot be cast to
      org.apache.sling.api.SlingHttpServletRequest
      at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter
      (AbstractSlingFilterChain.java:54)
      at org.webcastellum.WebCastellumFilter.internalDoFilter(WebCastellumFilt
      er.java:2610)
      at org.webcastellum.WebCastellumFilter.doFilter(WebCastellumFilter.java:
      1710)

      Attachments

        1. RequestData.diff
          1 kB
          Christian Sprecher
        2. SlingWebCastellum-1.0.jar
          635 kB
          Christian Sprecher

        Activity

          People

            fmeschbe Felix Meschberger
            kindofwhat Christian Sprecher
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: