You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2020/04/22 05:24:10 UTC

[sling-org-apache-sling-engine] branch master updated: SLING-9378 - When internalRedirect and sling:match maps are added, filterPattern doesn't work

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-engine.git


The following commit(s) were added to refs/heads/master by this push:
     new 06c326f  SLING-9378 - When internalRedirect and sling:match maps are added, filterPattern doesn't work
     new e91d094  Merge pull request #8 from ankitaagar/SLING-9378
06c326f is described below

commit 06c326fef3d62fff9490d69ca9e9d4ff0d3c5419
Author: ankitaag <an...@adobe.com>
AuthorDate: Thu Apr 16 19:22:48 2020 +0530

    SLING-9378 - When internalRedirect and sling:match maps are added, filterPattern doesn't work
---
 .../java/org/apache/sling/engine/impl/filter/FilterPredicate.java     | 4 +++-
 .../java/org/apache/sling/engine/impl/filter/AbstractFilterTest.java  | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/engine/impl/filter/FilterPredicate.java b/src/main/java/org/apache/sling/engine/impl/filter/FilterPredicate.java
index 6af6630..61afd96 100644
--- a/src/main/java/org/apache/sling/engine/impl/filter/FilterPredicate.java
+++ b/src/main/java/org/apache/sling/engine/impl/filter/FilterPredicate.java
@@ -131,11 +131,13 @@ public class FilterPredicate {
         LOG.debug("starting filter test against {} request", req);
         RequestPathInfo requestPathInfo = req.getRequestPathInfo();
         String path = requestPathInfo.getResourcePath();
+        String uri = req.getPathInfo();
         boolean select = anyElementMatches(methods, req.getMethod())
                 && anyElementMatches(selectors, requestPathInfo.getSelectors())
                 && anyElementMatches(extensions, requestPathInfo.getExtension())
                 && anyResourceTypeMatches(resourceTypes, req)
-                && patternMatches(pathRegex, path == null || path.isEmpty() ? "/" : path)
+                && (patternMatches(pathRegex, path == null || path.isEmpty() ? "/" : path)
+                || patternMatches(pathRegex, uri == null || uri.isEmpty() ? "/" : uri))
                 && patternMatches(suffixRegex, requestPathInfo.getSuffix());
         LOG.debug("selection of {} returned {}", this, select);
         return select;
diff --git a/src/test/java/org/apache/sling/engine/impl/filter/AbstractFilterTest.java b/src/test/java/org/apache/sling/engine/impl/filter/AbstractFilterTest.java
index ec36ca0..fe83fec 100644
--- a/src/test/java/org/apache/sling/engine/impl/filter/AbstractFilterTest.java
+++ b/src/test/java/org/apache/sling/engine/impl/filter/AbstractFilterTest.java
@@ -99,6 +99,8 @@ public abstract class AbstractFilterTest {
             will(returnValue(info));
             allowing(req).getMethod();
             will(returnValue(method));
+            allowing(req).getPathInfo();
+            will(returnValue(path));
         }});
         return req;
     }