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

deepak pushed a commit to branch release18.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/release18.12 by this push:
     new 8b38d77a29 Corrected override view condition if overrideViewUri is 
null then allowDirectViewRendering was set to false and condition breaks the 
flow. Also fixed the resolveURI test case
8b38d77a29 is described below

commit 8b38d77a29d0b1905b5995bed74b14173a186d3d
Author: Deepak Dixit <dee...@apache.org>
AuthorDate: Sat Jun 15 11:26:42 2024 +0530

    Corrected override view condition if overrideViewUri is null then 
allowDirectViewRendering was set to false and condition breaks the flow. Also 
fixed the resolveURI test case
---
 .../ofbiz/webapp/control/ConfigXMLReader.java      | 23 +++++++++++++++++++---
 .../ofbiz/webapp/control/RequestHandler.java       |  6 +++---
 .../ofbiz/webapp/control/RequestHandlerTests.java  |  2 +-
 3 files changed, 24 insertions(+), 7 deletions(-)

diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
index cb15c385b4..11f3c498c8 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ConfigXMLReader.java
@@ -573,9 +573,26 @@ public class ConfigXMLReader {
         public String strictTransportSecurity;
         public String description;
         public boolean noCache = false;
-        public boolean allowDirectViewRendering = false;
-        public boolean directViewRenderingWithAuth = false;
-
+        private boolean allowDirectViewRendering = false;
+        private boolean directViewRenderingWithAuth = false;
+
+        /**
+         * allow direct view rendering boolean
+         *
+         * @return the boolean
+         */
+        public boolean isAllowDirectViewRendering() {
+            return this.allowDirectViewRendering;
+        }
+
+        /**
+         * direct view rendering with authentication boolean
+         *
+         * @return the boolean
+         */
+        public boolean isDirectViewRenderingWithAuth() {
+            return this.directViewRenderingWithAuth;
+        }
         public ViewMap(Element viewMapElement) {
             this.name = viewMapElement.getAttribute("name");
             this.page = viewMapElement.getAttribute("page");
diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
index 98f205aeec..21c1461dfe 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/RequestHandler.java
@@ -203,11 +203,11 @@ public class RequestHandler {
         // Ensure that overridden view exists and direct view rendering is 
allowed.
         if (UtilValidate.isNotEmpty(overrideViewUri)) {
             ConfigXMLReader.ViewMap overrideViewMap = 
ccfg.getViewMapMap().get(overrideViewUri);
-            allowDirectViewRendering = (overrideViewMap != null && 
overrideViewMap.allowDirectViewRendering);
+            allowDirectViewRendering = (overrideViewMap != null && 
overrideViewMap.isAllowDirectViewRendering());
         }
         if (requestMapMap.containsKey(requestUri)
                 // Ensure that overridden view exists.
-                && (allowDirectViewRendering
+                && (overrideViewUri == null || allowDirectViewRendering
                 || ("SOAPService".equals(requestUri) && 
"wsdl".equalsIgnoreCase(req.getQueryString())))){
             rmaps = requestMapMap.get(requestUri);
         } else if (defaultRequest != null) {
@@ -486,7 +486,7 @@ public class RequestHandler {
         // Check if direct view rendering requires authentication.
         if (UtilValidate.isNotEmpty(overrideViewUri)) {
             ConfigXMLReader.ViewMap overrideViewMap = 
ccfg.getViewMapMap().get(overrideViewUri);
-            directViewRenderingWithAuth = (overrideViewMap != null && 
overrideViewMap.directViewRenderingWithAuth);
+            directViewRenderingWithAuth = (overrideViewMap != null && 
overrideViewMap.isDirectViewRenderingWithAuth());
         }
         // Perform security check.
         if (requestMap.securityAuth || directViewRenderingWithAuth) {
diff --git 
a/framework/webapp/src/test/java/org/apache/ofbiz/webapp/control/RequestHandlerTests.java
 
b/framework/webapp/src/test/java/org/apache/ofbiz/webapp/control/RequestHandlerTests.java
index 812756fb62..b7bf4a1456 100644
--- 
a/framework/webapp/src/test/java/org/apache/ofbiz/webapp/control/RequestHandlerTests.java
+++ 
b/framework/webapp/src/test/java/org/apache/ofbiz/webapp/control/RequestHandlerTests.java
@@ -132,7 +132,7 @@ public class RequestHandlerTests {
 
             when(req.getPathInfo()).thenReturn("/foo/baz");
             when(ccfg.getDefaultRequest()).thenReturn("bar");
-            
when(viewMaps.get("baz").allowDirectViewRendering).thenReturn(true);
+            
when(viewMaps.get("baz").isAllowDirectViewRendering()).thenReturn(true);
             assertThat(RequestHandler.resolveURI(ccfg, req), hasItem(foo));
         }
 

Reply via email to