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