From 46f2f75cce4cd37cf4f9990a57ddeb597698fec2 Mon Sep 17 00:00:00 2001 From: AlejandroP Date: Wed, 15 Nov 2023 10:52:59 -0300 Subject: [PATCH 1/2] - Force Add of Querystring parameters in Java/Tomcat7 with IBM WebSphere ( were being lost in the redirect from the filter) --- java/src/main/java/com/genexus/filters/APIObjectFilter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/com/genexus/filters/APIObjectFilter.java b/java/src/main/java/com/genexus/filters/APIObjectFilter.java index 2d83bbe8d..251f184e7 100644 --- a/java/src/main/java/com/genexus/filters/APIObjectFilter.java +++ b/java/src/main/java/com/genexus/filters/APIObjectFilter.java @@ -21,6 +21,9 @@ public class APIObjectFilter extends Filter { private ArrayList appPath = new ArrayList(); static final String PRIVATE_DIR="private"; static final String WEB_INFO="WEB-INF"; + static final String REST_SUBPART = "/rest/"; + static final String QS_SEP = "?"; + public static final Logger logger = LogManager.getLogger(APIObjectFilter.class); public void doFilter(IServletRequest request, IServletResponse response, IFilterChain chain) throws Exception { @@ -36,7 +39,7 @@ public void doFilter(IServletRequest request, IServletResponse response, IFilte } } if(isPath) { - String fwdURI = "/rest/" + path; + String fwdURI = REST_SUBPART + path + QS_SEP + httpRequest.getQueryString(); logger.info("Forwarding from " + path +" to: " + fwdURI) ; httpRequest.getRequestDispatcher(fwdURI).forward(request,response); } From 6f9fb80393774419630bc23d9e0e192862d99ea4 Mon Sep 17 00:00:00 2001 From: AlejandroP Date: Sun, 19 Nov 2023 23:36:00 -0300 Subject: [PATCH 2/2] - Fix API object filter to only add Querystring when Queryparameters are not empty --- java/src/main/java/com/genexus/filters/APIObjectFilter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/com/genexus/filters/APIObjectFilter.java b/java/src/main/java/com/genexus/filters/APIObjectFilter.java index 251f184e7..249e14898 100644 --- a/java/src/main/java/com/genexus/filters/APIObjectFilter.java +++ b/java/src/main/java/com/genexus/filters/APIObjectFilter.java @@ -39,7 +39,11 @@ public void doFilter(IServletRequest request, IServletResponse response, IFilte } } if(isPath) { - String fwdURI = REST_SUBPART + path + QS_SEP + httpRequest.getQueryString(); + String fwdURI = REST_SUBPART + path; + String qString = httpRequest.getQueryString(); + if ( qString != null && !qString.isEmpty()) { + fwdURI = fwdURI + QS_SEP + qString; + } logger.info("Forwarding from " + path +" to: " + fwdURI) ; httpRequest.getRequestDispatcher(fwdURI).forward(request,response); }