身 份管理
从 Flowable V6 开始,身份管理(IDM)组件已从 flowable-engine 模块中拆出,相关逻辑被移到了几个独立的模块中:flowable-idm-api、flowable-idm-engine、flowable-idm-spring 和 flowable-idm-engine-configurator。将 IDM 逻辑分离出来的主要原因是,它并非 Flowable 引擎的核心;在很多将 Flowable 引擎嵌入应用程序的场景中,这些身份逻辑并不被使用或需要。
默认情况下,当 Flowable 引擎启动时,IDM 引擎也会被初始化并启动。这使得与 Flowable v5 中相同的身份逻辑得以执行并可用。idm-engine 管理自己的数据库模式(schema)和以下实体:
- User 和 UserEntity:用户信息。
- Group 和 GroupEntity:组信息。
- MembershipEntity:用户在组中的成员关系。
- Privilege 和 PrivilegeEntity:权限定义(例如用于控制对 UI 应用程序的访问,如 Flowable Modeler 和 Flowable Task 应用)。
- PrivilegeMappingEntity:将用户和/或组关联到权限。
- Token 和 TokenEntity:UI 应用程序使用的认证令牌。
由于数据库中既包含历史实例实体,也包含正在运行的实例实体,你可能需要考虑查询这些表,以尽量减少对运行时流程实例数据的访问,从而保证运行时执行的性能。
IDM 引擎配置
默认情况下,Flowable 引擎使用 org.flowable.idm.engine.configurator.IdmEngineConfigurator 启动。该 configurator 使用与 Flowable 流程引擎配置相同的数据源配置。无需额外配置即可使用与 Flowable v5 中相同配置的身份组件。
当 Flowable 引擎中不需要身份逻辑时,可以在流程引擎配置中禁用 IDM 引擎。
<bean id="processEngineConfiguration" class="org.flowable.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="disableIdmEngine" value="true" />
...
</bean>
这意味着将无法使用用户和组查询,也无法为用户检索任务查询中的候选组。