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/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
     new 449ac51eba FELIX-6626 : Support jakarta servlet registration
449ac51eba is described below

commit 449ac51ebafcf5a3958ba2d3bff191b886c7c3ad
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 22 07:15:10 2023 +0200

    FELIX-6626 : Support jakarta servlet registration
---
 .../apache/felix/webconsole/WebConsoleUtil.java    | 32 +++++++++++-----------
 .../felix/webconsole/servlet/AbstractServlet.java  | 19 +++++++++++++
 2 files changed, 35 insertions(+), 16 deletions(-)

diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java 
b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
index 3a354fdabb..66974cf3dc 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/WebConsoleUtil.java
@@ -199,16 +199,16 @@ public final class WebConsoleUtil
             final HttpServletResponse response,
             String redirectUrl) throws IOException {
         // check for relative URL
-        if ( !redirectUrl.startsWith("/") ) { //$NON-NLS-1$
+        if ( !redirectUrl.startsWith("/") ) {
             String base = request.getContextPath() + request.getServletPath() 
+ request.getPathInfo();
             int i = base.lastIndexOf('/');
             if (i > -1) {
                 base = base.substring(0, i);
             } else {
                 i = base.indexOf(':');
-                base = (i > -1) ? base.substring(i + 1, base.length()) : ""; 
//$NON-NLS-1$
+                base = (i > -1) ? base.substring(i + 1, base.length()) : "";
             }
-            if (!base.startsWith("/")) { //$NON-NLS-1$
+            if (!base.startsWith("/")) {
                 base = '/' + base;
             }
             redirectUrl = base + '/' + redirectUrl;
@@ -228,12 +228,12 @@ public final class WebConsoleUtil
      * @param response The response for which to set the cache prevention
      */
     public static final void setNoCache(final HttpServletResponse response) {
-        response.setHeader("Cache-Control", "no-cache"); //$NON-NLS-1$ 
//$NON-NLS-2$
-        response.addHeader("Cache-Control", "no-store"); //$NON-NLS-1$ 
//$NON-NLS-2$
-        response.addHeader("Cache-Control", "must-revalidate"); //$NON-NLS-1$ 
//$NON-NLS-2$
-        response.addHeader("Cache-Control", "max-age=0"); //$NON-NLS-1$ 
//$NON-NLS-2$
-        response.setHeader("Expires", "Thu, 01 Jan 1970 01:00:00 GMT"); 
//$NON-NLS-1$ //$NON-NLS-2$
-        response.setHeader("Pragma", "no-cache"); //$NON-NLS-1$ //$NON-NLS-2$
+        response.setHeader("Cache-Control", "no-cache");
+        response.addHeader("Cache-Control", "no-store");
+        response.addHeader("Cache-Control", "must-revalidate");
+        response.addHeader("Cache-Control", "max-age=0");
+        response.setHeader("Expires", "Thu, 01 Jan 1970 01:00:00 GMT");
+        response.setHeader("Pragma", "no-cache");
     }
 
     /**
@@ -252,27 +252,27 @@ public final class WebConsoleUtil
             switch (ch = text.charAt(i))
             {
             case '<':
-                sb.append("&lt;"); //$NON-NLS-1$
+                sb.append("&lt;");
                 break;
             case '>':
-                sb.append("&gt;"); //$NON-NLS-1$
+                sb.append("&gt;");
                 break;
             case '&':
-                sb.append("&amp;"); //$NON-NLS-1$
+                sb.append("&amp;");
                 break;
             case ' ':
-                sb.append("&nbsp;"); //$NON-NLS-1$
+                sb.append("&nbsp;");
                 break;
             case '\'':
-                sb.append("&apos;"); //$NON-NLS-1$
+                sb.append("&apos;");
                 break;
             case '"':
-                sb.append("&quot;"); //$NON-NLS-1$
+                sb.append("&quot;");
                 break;
             case '\r':
             case '\n':
                 if (oldch != '\r' && oldch != '\n') // don't add twice <br>
-                    sb.append("<br/>\n"); //$NON-NLS-1$
+                    sb.append("<br/>\n");
                 break;
             default:
                 sb.append(ch);
diff --git 
a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java
 
b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java
index 031ad59cdc..bd3744d107 100644
--- 
a/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java
+++ 
b/webconsole/src/main/java/org/apache/felix/webconsole/servlet/AbstractServlet.java
@@ -198,4 +198,23 @@ public abstract class AbstractServlet extends HttpServlet {
     protected RequestVariableResolver getVariableResolver(final 
HttpServletRequest request) {
         return (RequestVariableResolver) 
request.getAttribute(RequestVariableResolver.REQUEST_ATTRIBUTE);
     }
+
+    /**
+     * Sets response headers to force the client to not cache the response
+     * sent back. This method must be called before the response is committed
+     * otherwise it will have no effect.
+     * <p>
+     * This method sets the <code>Cache-Control</code>, <code>Expires</code>,
+     * and <code>Pragma</code> headers.
+     *
+     * @param response The response for which to set the cache prevention
+     */
+    public static final void setNoCache(final HttpServletResponse response) {
+        response.setHeader("Cache-Control", "no-cache");
+        response.addHeader("Cache-Control", "no-store");
+        response.addHeader("Cache-Control", "must-revalidate");
+        response.addHeader("Cache-Control", "max-age=0");
+        response.setHeader("Expires", "Thu, 01 Jan 1970 01:00:00 GMT");
+        response.setHeader("Pragma", "no-cache");
+    }
 }

Reply via email to