Настройка безопасной обработки в TransformerFactory приводит к проблемам в XSLJAVA

Программисты JAVA общаются здесь
Anonymous
Настройка безопасной обработки в TransformerFactory приводит к проблемам в XSL

Сообщение Anonymous »

Я создаю PDF-документ с XML-файлом в качестве входных данных с помощью Apache FOP 2.4.
Чтобы предотвратить XXE-атаки, мне нужно установить функцию безопасной обработки (FEATURE_SECURE_PROCESSING) в TransformerFactory:

Код: Выделить всё

InputStream xslTransformer = getClass().getClassLoader().getResourceAsStream("foo.xsl");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setFeature(FEATURE_SECURE_PROCESSING, true);
Transformer transformer = transformerFactory.newTransformer(new StreamSource(xslTransformer));
transformer.transform(new DOMSource(), new SAXResult(fop.getDefaultHandler()));
После установки этой функции я не могу создать PDF-документ и получаю предупреждения:

Код: Выделить всё

SystemId Unknown; Line #49; Column #99; "master-name" attribute is not allowed on the fo:simple-page-master element!
SystemId Unknown; Line #49; Column #99; "initial-page-number" attribute is not allowed on the fo:simple-page-master element!
SystemId Unknown; Line #49; Column #99; "page-height" attribute is not allowed on the fo:simple-page-master element!
SystemId Unknown; Line #49; Column #99; "page-width" attribute is not allowed on the fo:simple-page-master element!
etc ...
Вот раздел файла XSL (foo.xsl):

Код: Выделить всё

















foo



bar









Как мне использовать эту функцию и заставить ее работать? Версия Java — 8.

Подробнее здесь: https://stackoverflow.com/questions/590 ... ems-in-xsl

Вернуться в «JAVA»