This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push: new f57a9d9847 Obfuscate session cookie values for JSON output as well as HTML f57a9d9847 is described below commit f57a9d9847c1038be61f5818d73b8be907c460d4 Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Dec 2 16:36:31 2024 +0000 Obfuscate session cookie values for JSON output as well as HTML --- webapps/docs/changelog.xml | 4 ++++ .../examples/WEB-INF/classes/RequestHeaderExample.java | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 57dbdf7c80..87270a9843 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -246,6 +246,10 @@ Examples. Fix broken links when Servlet Request Info example is called via a URL that includes a pathInfo component. (markt) </fix> + <fix> + Examples. Expand the obfuscation of session cookie values in the request + header example to JSON responses. (markt) + </fix> </changelog> </subsection> <subsection name = "Other"> diff --git a/webapps/examples/WEB-INF/classes/RequestHeaderExample.java b/webapps/examples/WEB-INF/classes/RequestHeaderExample.java index 993a4463d4..db6e4b10c5 100644 --- a/webapps/examples/WEB-INF/classes/RequestHeaderExample.java +++ b/webapps/examples/WEB-INF/classes/RequestHeaderExample.java @@ -73,7 +73,7 @@ public class RequestHeaderExample extends HttpServlet { // text/html, application/html, etc. if (accept.contains("html")) { - return false; + return true; } } return false; @@ -138,8 +138,20 @@ public class RequestHeaderExample extends HttpServlet { String headerName = e.nextElement(); String headerValue = request.getHeader(headerName); - out.append("{\"").append(JSONFilter.escape(headerName)).append("\":\"") - .append(JSONFilter.escape(headerValue)).append("\"}"); + out.append("{\"").append(JSONFilter.escape(headerName)).append("\":\""); + + + if (headerName.toLowerCase(Locale.ENGLISH).contains("cookie")) { + HttpSession session = request.getSession(false); + String sessionId = null; + if (session != null) { + sessionId = session.getId(); + } + out.append(JSONFilter.escape(CookieFilter.filter(headerValue, sessionId))); + } else { + out.append(JSONFilter.escape(headerValue)); + } + out.append("\"}"); if (e.hasMoreElements()) { out.append(','); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org