ATG (9.3) ОШИБКА: java.lang.NoClassDefFoundError: org / owasp / html / HtmlPolicyBuilder - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь добавить OWASP HTMLSanitizer API в мое приложение ATG (9.3), но получаю исключение ниже:

**** Error  Wed Jan 16 01:35:45 IST 2019    1547582745139   
/   Unable to resolve component /test/util/TestingUtil
java.lang.NoClassDefFoundError: org/owasp/html/HtmlPolicyBuilder

Изменения реализации, выполненные до сих пор:

1) Добавлены owasp-java-html-sanitizer.jar и guava-20.0.jar в моей папке commerce / lib (место, где находятся все банки)

2) Создан компонент CustomSanitizer, т.е. файл CustomSanitizer.properties с содержимым:

$class=org.owasp.html.HtmlPolicyBuilder
$scope=global

3) Добавлен созданный выше компонент к существующему компоненту, где нам нужно очистить URL. Файл свойств существующего компонента (TestingUtil.properties)

$class=com.util.TestingUtil
htmlPolicyBuilder=/test/util/HTMLPolicyBuilder

4) TestingUtil.java:

private HtmlPolicyBuilder htmlPolicyBuilder;(setters and getters)

public String filterUrl(String url) {
        String filteredURL = url;
            PolicyFactory policy = htmlPolicyBuilder
                    .allowElements("a")
                    .allowUrlProtocols("https")
                    .allowAttributes("href").onElements("a")
                    .requireRelNofollowOnLinks()
                    .toFactory();
            filteredURL = policy.sanitize(url);
        }
        return filteredURL;

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 22 июля 2019

Во-первых, просто проверка, потому что это не очевидно из ваших изменений реализации, перечисленных выше; Включили ли вы новые JAR-файлы в манифест модуля? между шагом 1 и шагом 2. (глядя на вашу ошибку, я подозреваю, что это так)

Тогда, компонент Nucleus, который вы определили (CustomSanitizer.properties), можете ли вы создать его один? например, что вы получите, если перейдете к компоненту через браузер компонентов в dyn/admin? (он глобален, должен иметь возможность создавать его при первом доступе).

Затем, если компонент может быть создан, выясните, почему ваш компонент TestigUtil не может получить к нему доступ. Правильный ли путь к компоненту?

...