SLING-7801 - Optimise AntiSamy logging for null input in org.apache.sling.xss.impl.HtmlToHtmlContentContext
* added null / empty string checks so that the logs are not filled with useless reporting
diff --git a/src/main/java/org/apache/sling/xss/impl/HtmlToHtmlContentContext.java b/src/main/java/org/apache/sling/xss/impl/HtmlToHtmlContentContext.java
index b3ad2cf..f297c1d 100644
--- a/src/main/java/org/apache/sling/xss/impl/HtmlToHtmlContentContext.java
+++ b/src/main/java/org/apache/sling/xss/impl/HtmlToHtmlContentContext.java
@@ -18,6 +18,7 @@
import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.owasp.validator.html.CleanResults;
import org.owasp.validator.html.PolicyException;
import org.owasp.validator.html.ScanException;
@@ -43,14 +44,16 @@
*/
@Override
public boolean check(final PolicyHandler policyHandler, final String str) {
- try {
- return policyHandler.getAntiSamy().scan(str).getNumberOfErrors() == 0;
- } catch (final ScanException se) {
- log.warn("Unable to scan input.", se);
- log.debug("Provided input: {}", str);
- } catch (final PolicyException pe) {
- log.warn("Unable to check input.", pe);
- log.debug("Provided input: {}", str);
+ if (StringUtils.isNotEmpty(str)) {
+ try {
+ return policyHandler.getAntiSamy().scan(str).getNumberOfErrors() == 0;
+ } catch (final ScanException se) {
+ log.warn("Unable to scan input.", se);
+ log.debug("Provided input: {}", str);
+ } catch (final PolicyException pe) {
+ log.warn("Unable to check input.", pe);
+ log.debug("Provided input: {}", str);
+ }
}
return false;
}
@@ -60,26 +63,28 @@
*/
@Override
public String filter(final PolicyHandler policyHandler, final String str) {
- try {
- log.debug("Protecting (HTML -> HTML) :\n{}", str);
- final CleanResults results = policyHandler.getAntiSamy().scan(str);
- final String cleaned = results.getCleanHTML();
- @SuppressWarnings("unchecked")
- final List<String> errors = results.getErrorMessages();
- for (final String error : errors) {
- log.info("AntiSamy warning: {}", error);
- }
- log.debug("Protected (HTML -> HTML):\n{}", cleaned);
+ if (StringUtils.isNotEmpty(str)) {
+ try {
+ log.debug("Protecting (HTML -> HTML) :\n{}", str);
+ final CleanResults results = policyHandler.getAntiSamy().scan(str);
+ final String cleaned = results.getCleanHTML();
+ @SuppressWarnings("unchecked")
+ final List<String> errors = results.getErrorMessages();
+ for (final String error : errors) {
+ log.info("AntiSamy warning: {}", error);
+ }
+ log.debug("Protected (HTML -> HTML):\n{}", cleaned);
- return cleaned;
- } catch (final ScanException se) {
- log.warn("Unable to scan input.", se);
- log.debug("Provided input: {}", str);
- } catch (final PolicyException pe) {
- log.warn("Unable to check input.", pe);
- log.debug("Provided input: {}", str);
+ return cleaned;
+ } catch (final ScanException se) {
+ log.warn("Unable to scan input.", se);
+ log.debug("Provided input: {}", str);
+ } catch (final PolicyException pe) {
+ log.warn("Unable to check input.", pe);
+ log.debug("Provided input: {}", str);
+ }
}
- return "";
+ return StringUtils.EMPTY;
}
/**