svn commit: r1863401 - in /ofbiz/ofbiz-framework/trunk/framework: base/src/main/java/org/apache/ofbiz/base/util/ base/src/test/java/org/apache/ofbiz/base/util/ webapp/src/main/java/org/apache/ofbiz/webapp/control/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1863401 - in /ofbiz/ofbiz-framework/trunk/framework: base/src/main/java/org/apache/ofbiz/base/util/ base/src/test/java/org/apache/ofbiz/base/util/ webapp/src/main/java/org/apache/ofbiz/webapp/control/

mthl
Author: mthl
Date: Fri Jul 19 14:29:31 2019
New Revision: 1863401

URL: http://svn.apache.org/viewvc?rev=1863401&view=rev
Log:
Improved: Use a predicate in ‘UtilHttp#getParameterMap’
(OFBIZ-11138)

Modified:
    ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java
    ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java
    ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java?rev=1863401&r1=1863400&r2=1863401&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilHttp.java Fri Jul 19 14:29:31 2019
@@ -134,7 +134,7 @@ public final class UtilHttp {
      * @return a canonicalized parameter map.
      */
     public static Map<String, Object> getParameterMap(HttpServletRequest request) {
-        return getParameterMap(request, null, true);
+        return getParameterMap(request, x -> true);
     }
 
     /**
@@ -143,21 +143,18 @@ public final class UtilHttp {
      * If parameters are empty, the multi-part parameter map will be used.
      *
      * @param req  the HTTP request containing the parameters
-     * @param nameSet  the set of parameters keys to include or skip
-     * @param includeOrSkip  a toggle where {@code true} means including and {@code false} means skipping
+     * @param pred  the predicate filtering the parameter names
      * @return a canonicalized parameter map.
      */
-    public static Map<String, Object> getParameterMap(HttpServletRequest req, Set<? extends String> nameSet,
-            boolean includeOrSkip) {
+    public static Map<String, Object> getParameterMap(HttpServletRequest req, Predicate<String> pred) {
         // Add all the actual HTTP request parameters
         Map<String, String[]> origParams = req.getParameterMap();
         Map<String, Object> params = origParams.entrySet().stream()
-                .filter(pair -> nameSet == null || !(includeOrSkip ^ nameSet.contains(pair.getKey())))
+                .filter(pair -> pred.test(pair.getKey()))
                 .collect(toMap(Map.Entry::getKey, pair -> transformParamValue(pair.getValue())));
 
         // Pseudo-parameters passed in the URI path overrides the ones from the regular URI parameters
-        params.putAll(getPathInfoOnlyParameterMap(req.getPathInfo(),
-                name -> nameSet == null || !(includeOrSkip ^ nameSet.contains(name))));
+        params.putAll(getPathInfoOnlyParameterMap(req.getPathInfo(), pred));
 
         // If nothing is found in the parameters, try to find something in the multi-part map.
         Map<String, Object> multiPartMap = params.isEmpty() ? getMultiPartParameterMap(req) : Collections.emptyMap();

Modified: ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java?rev=1863401&r1=1863400&r2=1863401&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/base/src/test/java/org/apache/ofbiz/base/util/UtilHttpTest.java Fri Jul 19 14:29:31 2019
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.when;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Map;
+import java.util.function.Predicate;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.HttpMethod;
@@ -113,10 +114,11 @@ public class UtilHttpTest {
                 "foo", new String[] {"1"},
                 "bar", new String[] {"2", "3"}));
         when(req.getPathInfo()).thenReturn("/foo");
-        assertThat(UtilHttp.getParameterMap(req, UtilMisc.toSet("bar"), false), Matchers.<Map<String, Object>>allOf(
+        Predicate<String> equalsBar = "bar"::equals;
+        assertThat(UtilHttp.getParameterMap(req, equalsBar.negate()), Matchers.<Map<String, Object>>allOf(
                 hasEntry("foo", "1"),
                 not(hasEntry("bar", Arrays.asList("2", "3")))));
-        assertThat(UtilHttp.getParameterMap(req, UtilMisc.toSet("bar"), true), Matchers.<Map<String, Object>>allOf(
+        assertThat(UtilHttp.getParameterMap(req, equalsBar), Matchers.<Map<String, Object>>allOf(
                 not(hasEntry("foo", "1")),
                 hasEntry("bar", Arrays.asList("2", "3"))));
     }

Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java?rev=1863401&r1=1863400&r2=1863401&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java Fri Jul 19 14:29:31 2019
@@ -32,6 +32,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.ServiceLoader;
+import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -354,7 +355,8 @@ public class LoginWorker {
                 if (UtilValidate.isNotEmpty(urlParams)) {
                     session.setAttribute("_PREVIOUS_PARAM_MAP_URL_", urlParams);
                 }
-                Map<String, Object> formParams = UtilHttp.getParameterMap(request, urlParams.keySet(), false);
+                Predicate<String> isUrlParam = urlParams.keySet()::contains;
+                Map<String, Object> formParams = UtilHttp.getParameterMap(request, isUrlParam.negate());
                 if (UtilValidate.isNotEmpty(formParams)) {
                     session.setAttribute("_PREVIOUS_PARAM_MAP_FORM_", formParams);
                 }