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

相关文章

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

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

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

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

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