Настройка обработки XML

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Spin можно настроить для изменения параметров разбора, записи и отображения XML. Spin использует JAXB и DOM для работы с XML. Поэтому формат данных XML использует экземпляры javax.xml.parsers.DocumentBuilderFactory, javax.xml.transform.TransformerFactory и javax.xml.bind.JAXBContext, которые можно настроить с помощью механизма конфигурации Spin.

Например, пользовательское приложение может предоставить реализацию io.openbpm.spin.spi.DataFormatConfigurator, заменяющую JAXBContext. Spin использует и кэширует контекст для повышения производительности.

Класс формата данных, для которого необходимо зарегистрировать конфигуратор: io.openbpm.spin.impl.xml.dom.format.DomXmlDataFormat. Экземпляр этого класса предоставляет сеттер-методы (для перечисленных выше сущностей), с помощью которых можно заменить объектный маппер по умолчанию. Доступные параметры конфигурации описаны в документации JDK.

Безопасная обработка XML

Формат данных XML в Spin предоставляет следующие свойства конфигурации для обеспечения безопасного разбора XML-документов:

Свойство Описание

xxe-processing

Включает или отключает обработку внешних XML-сущностей (XXE) в XML-документе. Отключите, чтобы предотвратить XXE-атаки. Значение по умолчанию: false

secure-processing

Включает или отключает безопасную обработку XML-документа. Значение по умолчанию: true

Чтобы передать пользовательскую конфигурацию, можно передать эти свойства в виде Map в метод DataFormats.loadDataFormats(…​), как показано в следующем примере:

Map<String, Object> configurationOptions = new HashMap<>();
configurationOptions.put("xxe-processing", true);
configurationOptions.put("secure-processing", false);

DataFormats.loadDataFormats(classloader, configurationOptions);

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org