diff --git a/openam-distribution/src/main/amserver/demo/source/com/sun/identity/demo/server/EvaluatePolicyServlet.java b/openam-distribution/src/main/amserver/demo/source/com/sun/identity/demo/server/EvaluatePolicyServlet.java index ee10440228..8c0de57866 100644 --- a/openam-distribution/src/main/amserver/demo/source/com/sun/identity/demo/server/EvaluatePolicyServlet.java +++ b/openam-distribution/src/main/amserver/demo/source/com/sun/identity/demo/server/EvaluatePolicyServlet.java @@ -22,7 +22,7 @@ * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * - * Portions Copyrighted 2025 3A Systems LLC + * Portions Copyrighted 2025-2026 3A Systems LLC * * $Id: EvaluatePolicyServlet.java,v 1.2 2008/06/25 05:40:25 qcheng Exp $ * @@ -44,7 +44,6 @@ import com.sun.identity.shared.debug.Debug; //import com.iplanet.am.util.Debug; import com.iplanet.am.util.SystemProperties; -import com.iplanet.am.util.XMLUtils; import com.iplanet.sso.SSOToken; import com.iplanet.sso.SSOTokenManager; @@ -52,6 +51,8 @@ import com.sun.identity.policy.PolicyEvaluator; import com.sun.identity.policy.PolicyDecision; +import org.apache.commons.lang3.StringEscapeUtils; + public class EvaluatePolicyServlet extends HttpServlet { // the debug file @@ -154,16 +155,19 @@ protected void processRequest( PolicyDecision pd = pe.getPolicyDecision(ssoToken, resource, actions, null); boolean allowed = pe.isAllowed(ssoToken, resource, "GET", null); + // The resource is a request parameter reflected into the page. + String escapedResource = + StringEscapeUtils.escapeHtml4(resource); StringBuffer message = new StringBuffer("
");
-                message.append("isAllowed() for ").append(resource).
+                message.append("isAllowed() for ").append(escapedResource).
                 append(" action:GET is:   ");
                 message = message.append(allowed);
                 message.append(NEWLINE);
                 message.append(NEWLINE);
-                message.append("getPolicyDecision() for ").append(resource).
+                message.append("getPolicyDecision() for ").append(escapedResource).
                     append(" action:GET is:");
                 message.append(NEWLINE);
-                message.append(XMLUtils.escapeSpecialCharacters(pd.toXML()));
+                message.append(StringEscapeUtils.escapeHtml4(pd.toXML()));
                 message.append("
"); sendResponse(response, message.toString()); } diff --git a/openam-examples/openam-example-clientsdk-war/pom.xml b/openam-examples/openam-example-clientsdk-war/pom.xml index 3e767556d7..a23f974cba 100644 --- a/openam-examples/openam-example-clientsdk-war/pom.xml +++ b/openam-examples/openam-example-clientsdk-war/pom.xml @@ -13,7 +13,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2016 ForgeRock AS. - * Portions copyright 2025 3A Systems LLC. + * Portions copyright 2025-2026 3A Systems LLC. --> 4.0.0 @@ -90,6 +90,10 @@ org.openidentityplatform.openam openam-clientsdk + + org.apache.commons + commons-lang3 + org.owasp.esapi esapi diff --git a/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/ServiceConfigServlet.java b/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/ServiceConfigServlet.java index 058d8df097..1bbe51d904 100644 --- a/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/ServiceConfigServlet.java +++ b/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/ServiceConfigServlet.java @@ -25,7 +25,7 @@ * $Id: ServiceConfigServlet.java,v 1.3 2008/06/25 05:41:09 qcheng Exp $ * * Portions Copyrighted 2015-2016 ForgeRock AS. - * Portions Copyrighted 2025 3A Systems LLC. + * Portions Copyrighted 2025-2026 3A Systems LLC. */ package com.sun.identity.samples.clientsdk; @@ -39,6 +39,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringEscapeUtils; /** * Sample program that lists service configurations. @@ -83,8 +84,9 @@ public void doGet( return; } - out.println("

ServiceName:

" + servicename); - out.println("

Username:

" + username); + // Request parameters are reflected into the page: escape them. + out.println("

ServiceName:

" + StringEscapeUtils.escapeHtml4(servicename)); + out.println("

Username:

" + StringEscapeUtils.escapeHtml4(username)); try { AuthContext lc = authenticate(orgname, username, password, out); diff --git a/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/UserProfileServlet.java b/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/UserProfileServlet.java index 84a29db149..f38ef434ad 100644 --- a/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/UserProfileServlet.java +++ b/openam-examples/openam-example-clientsdk-war/src/main/java/com/sun/identity/samples/clientsdk/UserProfileServlet.java @@ -25,7 +25,7 @@ * $Id: UserProfileServlet.java,v 1.3 2008/06/25 05:41:09 qcheng Exp $ * * Portions Copyrighted 2016 ForgeRock AS. - * Portions Copyrighted 2025 3A Systems LLC. + * Portions Copyrighted 2025-2026 3A Systems LLC. */ package com.sun.identity.samples.clientsdk; @@ -42,6 +42,7 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringEscapeUtils; /** * Sample program that show user profile. @@ -80,7 +81,8 @@ public void doGet( return; } - out.println("

Username:

" + username); + // The user name is a request parameter reflected into the page: escape it. + out.println("

Username:

" + StringEscapeUtils.escapeHtml4(username)); try { // Authenticate the user and obtain SSO Token