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("<"); //$NON-NLS-1$
+ sb.append("<");
break;
case '>':
- sb.append(">"); //$NON-NLS-1$
+ sb.append(">");
break;
case '&':
- sb.append("&"); //$NON-NLS-1$
+ sb.append("&");
break;
case ' ':
- sb.append(" "); //$NON-NLS-1$
+ sb.append(" ");
break;
case '\'':
- sb.append("'"); //$NON-NLS-1$
+ sb.append("'");
break;
case '"':
- sb.append("""); //$NON-NLS-1$
+ sb.append(""");
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");
+ }
}