ATG(9.3) ОШИБКА: java.lang.NoClassDefFoundError: org/owasp/html/HtmlPolicyBuilder
Я пытаюсь добавить 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;
Пожалуйста, предложите.
0 ответов
Во-первых, просто проверка, потому что это не очевидно из перечисленных выше изменений реализации; Включили ли вы новые файлы JAR в манифест модуля? между шагом 1 и шагом 2. (глядя на вашу ошибку, я подозреваю, что это так)
Затем, если вы определили компонент Nucleus (CustomSanitizer.properties), можете ли вы создать его экземпляр самостоятельно? например, что вы получите, если перейдете к компоненту через обозреватель компонентов вdyn/admin
? (он глобальный, он должен иметь возможность создать его при первом доступе).
Затем, если можно создать экземпляр компонента, выясните, почему компонент TestigUtil не может получить к нему доступ. Путь к компоненту правильный?