SLING-9045 Adding option to ignore the processing rules around querystring params
Originally-By: @srgovindaraj
diff --git a/README.md b/README.md
index 85cce96..7fbf083 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,7 @@
 * **Filter selector** - selector used to get actual content
 * **Component TTL** - time to live in seconds, set for rendered component (require Dispatcher 4.1.11+)
 * **Required header** - SDI will be enabled only if the configured header is present in the request. By default it's `Server-Agent=Communique-Dispatcher` header, added by the AEM dispatcher. You may enter just the header name only or the name and the value split with `=`.
+* **Disable Ignore URL params check** - SDI will process all requests and discard ignore URL params check including requests with GET params.
 * **Ignore URL params** - SDI normally skips all requests containing any GET parameters. This option allows to set a list of parameters that should be ignored in the test. See the [Ignoring URL parameters](https://docs.adobe.com/docs/en/dispatcher/disp-config.html#Ignoring%20URL%20Parameters) section in the dispatcher documentation.
 * **Include path rewriting** -- enable rewriting link (according to sling mappings) that is used for dynamic content including.
 * **Append suffix** -- ensures that the suffix of the parent request is included with the dynamic include.
diff --git a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
index 97a33a1..ce09163 100755
--- a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
@@ -91,9 +91,12 @@
 
       @AttributeDefinition(name =  "Include path rewriting", description = "Check to enable include path rewriting")
       boolean include$_$filter_config_rewrite() default false;
-      
+
       @AttributeDefinition(name =  "Append suffix to dynamic includes", description = "Check to append the suffix of the parent request to the dynamic include.")
       boolean include$_$filter_config_appendSuffix() default true;
+
+      @AttributeDefinition(name =  "Disable ignore URL params check", description = "Disable the check in the Ignore URL Params setting.")
+      boolean include$_$filter_config_disableIgnoreUrlParams() default false;
   }
 
   private static final Logger LOG = LoggerFactory.getLogger(Configuration.class);
@@ -116,6 +119,8 @@
 
   private String requiredHeader;
 
+  private boolean disableIgnoreUrlParams;
+
   private List<String> ignoreUrlParams;
 
   private boolean rewritePath;
@@ -146,6 +151,7 @@
         new String[0]));
     rewritePath = cfg.include$_$filter_config_rewrite();
     appendSuffix = cfg.include$_$filter_config_appendSuffix();
+    disableIgnoreUrlParams = cfg.include$_$filter_config_disableIgnoreUrlParams();
   }
 
   private PathMatcher choosePathMatcher(String pathPattern) {
@@ -217,6 +223,10 @@
     return ignoreUrlParams;
   }
 
+  public boolean isDisableIgnoreUrlParams() {
+    return disableIgnoreUrlParams;
+  }
+
   public boolean isRewritePath() {
     return rewritePath;
   }
diff --git a/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java b/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
index 396984b..d860549 100644
--- a/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
@@ -105,7 +105,8 @@
     }
 
     private boolean shouldWriteIncludes(Configuration config, SlingHttpServletRequest request) {
-        if (requestHasParameters(config.getIgnoreUrlParams(), request)) {
+        // Do not skip GET requests when DisableIgnoreUrlParams set to true.
+        if (!config.isDisableIgnoreUrlParams() && requestHasParameters(config.getIgnoreUrlParams(), request)) {
             return false;
         }
         final String requiredHeader = config.getRequiredHeader();