Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-1653

VirtualURI feature is broken in 3.1M1

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 3.5 RC1
    • 3.1 M1
    • core
    • None

    Description

      virtual uri mappings for magnolia pages don't work anymore, they only works if the destination is not a page generated by magnolia.

      an easy test (used with the sample pages):

      • create a new VirtualURI with:
        fromURI=/help/services/test.html
        toURI=/help/services.html

      try http://localhost:8080/magnolia/help/services/test.html

      java.lang.IllegalStateException: Original URI can only be set once ! Existing value is [/help/services/test.html], tried to replace it with [/magnolia/help/services/test.html]
      info.magnolia.cms.core.AggregationState.setOriginalURI(AggregationState.java:37)
      info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:44)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:40)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.MgnlVirtualUriFilter.doFilter(MgnlVirtualUriFilter.java:54)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.cache.CacheFilter.doFilter(CacheFilter.java:97)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.i18n.I18NSupportFilter.doFilter(I18NSupportFilter.java:46)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:50)
      info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:59)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:39)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:64)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:39)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:47)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.MgnlContextFilter.doFilter(MgnlContextFilter.java:40)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)
      info.magnolia.cms.filters.MagnoliaFilterChain.doFilter(MagnoliaFilterChain.java:48)
      info.magnolia.cms.filters.MagnoliaMainFilter.doFilter(MagnoliaMainFilter.java:97)
      info.magnolia.cms.filters.AbstractMagnoliaFilter.doFilter(AbstractMagnoliaFilter.java:46)

      if you try using toURI=forward:/help/services.html the result is instead a 404: that is normal since the magnolia filter is not registered with dispatcher FORWARD in web.xml.
      Adding the forward/error dispatcher in web.xml would be great (for handing forwards and also error pages) but that will require to filter forward to jsps in filter bypasses. I think this is definitively something we should investigate.

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

                fgiust Fabrizio Giustina
                fgiust Fabrizio Giustina
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Checklists

                    Bug DoR
                    Task DoD