diff --git a/accesscontroltool-bundle/pom.xml b/accesscontroltool-bundle/pom.xml index 6c7de720..7ee9e2bf 100644 --- a/accesscontroltool-bundle/pom.xml +++ b/accesscontroltool-bundle/pom.xml @@ -168,6 +168,11 @@ org.apache.sling.settings provided + + org.apache.sling + org.apache.sling.xss + provided + org.apache.sling org.apache.sling.commons.osgi diff --git a/accesscontroltool-bundle/src/main/java/biz/netcentric/cq/tools/actool/ui/AcToolUiService.java b/accesscontroltool-bundle/src/main/java/biz/netcentric/cq/tools/actool/ui/AcToolUiService.java index a38e907d..188151c6 100644 --- a/accesscontroltool-bundle/src/main/java/biz/netcentric/cq/tools/actool/ui/AcToolUiService.java +++ b/accesscontroltool-bundle/src/main/java/biz/netcentric/cq/tools/actool/ui/AcToolUiService.java @@ -14,8 +14,6 @@ * #L% */ -import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -52,6 +50,7 @@ import org.apache.jackrabbit.api.JackrabbitSession; import org.apache.jackrabbit.api.security.user.User; import org.apache.sling.api.SlingHttpServletRequest; +import org.apache.sling.xss.XSSAPI; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; @@ -114,6 +113,9 @@ public class AcToolUiService { @Reference(policyOption = ReferencePolicyOption.GREEDY) private AcHistoryService acHistoryService; + @Reference(policyOption = ReferencePolicyOption.GREEDY) + private XSSAPI xssApi; + @ObjectClassDefinition(name = "AC Tool UI Service", description="Service that allows to apply AC Tool configuration and gather status of users/groups and permissions from a Web UI (either Touch UI or Web Console Plugin).") protected static @interface Configuration { @@ -570,7 +572,7 @@ private void printInstallationLogsSection(HtmlWriter writer, RequestParameters r return; } - String sanitizedCurrentPath = escapeHtml4(currentPath); + String sanitizedCurrentPath = xssApi.encodeForHTMLAttr(currentPath); for (AcToolExecution acToolExecution : acToolExecutions.values()) { String linkToLog = sanitizedCurrentPath + "?" + PARAM_SHOW_LOG_ID + "=" + acToolExecution.getId(); String downloadLinkToLog = basePath + "/" + SUFFIX_DOWNLOAD_LOG + "?" + PARAM_SHOW_LOG_ID + "=" + acToolExecution.getId(); @@ -598,7 +600,7 @@ private void printInstallationLogsSection(HtmlWriter writer, RequestParameters r AcToolExecution acToolExecution = acToolExecutions.get(reqParams.showLogId); if (acToolExecution == null) { - writer.println("No log found for id " + escapeHtml4(reqParams.showLogId)); + writer.println("No log found for id " + xssApi.encodeForHTML(reqParams.showLogId)); return; } else { String logLabel = "Execution Log " + reqParams.showLogId + ": " + getExecutionLabel(acToolExecution); @@ -665,7 +667,7 @@ private void printImportSection(final HtmlWriter writer, RequestParameters reqPa writer.openTd(); writer.print(""); writer.closeTd(); @@ -679,7 +681,7 @@ private void printImportSection(final HtmlWriter writer, RequestParameters reqPa writer.openTd(); writer.print(""); writer.closeTd(); diff --git a/target-osgi-environment/sling-maximum-version-environment/pom.xml b/target-osgi-environment/sling-maximum-version-environment/pom.xml index 54924048..d4f4a1c7 100644 --- a/target-osgi-environment/sling-maximum-version-environment/pom.xml +++ b/target-osgi-environment/sling-maximum-version-environment/pom.xml @@ -136,6 +136,12 @@ 2.0.17 provided + + org.slf4j + log4j-over-slf4j + 2.0.17 + provided + org.apache.httpcomponents httpcore-osgi @@ -160,6 +166,12 @@ 3.20.0 provided + + org.apache.commons + commons-text + 1.15.0 + provided + commons-collections commons-collections @@ -190,6 +202,12 @@ 3.1.0 provided + + org.owasp.encoder + encoder + 1.4.0 + provided + org.apache.sling org.apache.sling.api @@ -221,6 +239,12 @@ 1.4.4 provided + + org.apache.sling + org.apache.sling.commons.johnzon + 2.0.0 + provided + org.apache.sling org.apache.sling.hc.api @@ -251,6 +275,12 @@ 1.0.4 provided + + org.apache.sling + org.apache.sling.xss + 2.4.8 + provided + io.dropwizard.metrics metrics-core @@ -329,6 +359,12 @@ ${jackson.version} provided + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + provided + com.fasterxml.jackson.core jackson-annotations diff --git a/target-osgi-environment/sling-minimum-version-environment/pom.xml b/target-osgi-environment/sling-minimum-version-environment/pom.xml index cb0c6bfc..555f22c3 100644 --- a/target-osgi-environment/sling-minimum-version-environment/pom.xml +++ b/target-osgi-environment/sling-minimum-version-environment/pom.xml @@ -117,6 +117,12 @@ slf4j-api provided + + org.slf4j + log4j-over-slf4j + 1.7.25 + provided + org.apache.httpcomponents httpcore-osgi @@ -159,6 +165,18 @@ 3.1.0 provided + + commons-fileupload + commons-fileupload + 1.4 + provided + + + org.apache.sling + org.apache.sling.commons.johnzon + 1.2.14 + provided + org.apache.sling org.apache.sling.api @@ -189,6 +207,12 @@ 1.4.4 provided + + org.apache.sling + org.apache.sling.commons.metrics + 1.2.10 + provided + org.apache.sling org.apache.sling.hc.api @@ -213,6 +237,12 @@ 4.3.0 provided + + org.apache.sling + org.apache.sling.xss + 2.2.18 + provided + io.dropwizard.metrics metrics-core