Flowable入门系列文章192 - 启用安全的BPMN 2.0 xml和事件记录

2023-10-20 08:30

本文主要是介绍Flowable入门系列文章192 - 启用安全的BPMN 2.0 xml和事件记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、启用安全的BPMN 2.0 xml

在大多数情况下,部署到Flowable引擎的BPMN 2.0流程受到开发团队的严格控制。但是,在某些使用情况下,可能需要将任意BPMN 2.0 xml上载到引擎。在这种情况下,请考虑到意图不好的用户可以按照此处所述的方法关闭服务器。
为避免上述链接中描述的攻击,可以在流程引擎配置上设置属性enableSafeBpmnXml:

<property name="enableSafeBpmnXml" value="true"/>

默认情况下,此功能已禁用! 这是因为它依赖于StaxSource类的可用性。不幸的是,在某些平台上(例如JDK 6,JBoss等),这个类是不可用的(由于旧的XML解析器实现),因此无法启用安全的BPMN 2.0 xml功能。

如果Flowable运行的平台确实支持它,请启用此功能。

2、事件记录

事件记录机制已经被引入。日志机制建立在Flowable引擎的通用事件机制上,默认情况下是禁用的。这个想法是捕获来自引擎的事件,并且包含所有事件数据(以及更多)的映射被创建并提供给org.flowable.engine.impl.event.logger.EventFlusher,其将刷新该数据去别的地方 默认情况下,使用简单的数据库支持的事件处理程序/冲洗器,它使用Jackson将所述映射序列化为JSON,并将其作为EventLogEntryEntity实例存储在数据库中。此数据库日志记录所需的表是默认创建的(调用 ACT_EVT_LOG)。如果不使用事件日志记录,则可以删除此表。

启用数据库记录器:

processEngineConfigurationImpl.setEnableDatabaseEventLogging(true);

或者在运行时:

databaseEventLogger = new EventLogger(processEngineConfiguration.getClock(),
processEngineConfiguration.getObjectMapper());
runtimeService.addEventListener(databaseEventLogger);

EventLogger类可以扩展。特别是,如果不需要默认数据库日志记录,那么createEventFlusher ()方法需要返回org.flowable.engine.impl.event.logger.EventFlusher接口的一个实例。所述managementService.getEventLogEntries(startLogNr,大小);可以用来通过Flowable 检索EventLogEntry实例。

很容易看出这个表数据现在如何用于将JSON提供给大数据NoSQL存储,如MongoDB,弹性搜索等等。也很容易看出这里使用的类(org.flowable.engine。 impl.event.logger.EventLogger / EventFlusher和许多EventHandler类)是可插入的,可以根据自己的用例进行调整(例如,不将JSON存储在数据库中,而是直接将其发送到队列或大数据存储区)。

请注意,此事件记录机制是Flowable 的传统历史记录管理器的补充。虽然所有的数据都在数据库表中,但它并不是针对查询进行优化的,也不便于检索。真正的用例是审计跟踪,并将其提供给大数据存储。

上面文章来自盘古BPM研究院:http://vue.pangubpm.com/
文章翻译提交:https://github.com/qiudaoke/flowable-userguide
了解更多文章可以关注微信公众号:在这里插入图片描述

这篇关于Flowable入门系列文章192 - 启用安全的BPMN 2.0 xml和事件记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/245919

相关文章

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤