1.pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<flowable.version>6.6.0</flowable.version>
</properties>
<!--flowable工作流依赖-->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>${flowable.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.flowable/flowable-json-converter -->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-json-converter</artifactId>
<version>${flowable.version}</version>
</dependency>
<!-- app 依赖 包含 rest,logic,conf -->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-rest</artifactId>
<version>${flowable.version}</version>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-logic</artifactId>
<version>${flowable.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-ui-modeler-conf</artifactId>
<version>${flowable.version}</version>
</dependency>
2. FlowableConfig配置类
package org.fh.config;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
/**
* 说明:Flowable配置
* 作者:FH Admin
* from:fhadmin.cn
*/
@Controller
@Configuration
public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
@Override
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("宋体");
engineConfiguration.setLabelFontName("宋体");
engineConfiguration.setAnnotationFontName("宋体");
}
}
3.重写 SecurityUtils 重构流程编辑器获取用户信息
package org.flowable.ui.common.security;
import org.fh.util.Jurisdiction;
import org.flowable.common.engine.api.FlowableIllegalStateException;
import org.flowable.idm.api.User;
import org.flowable.ui.common.model.RemoteUser;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.ArrayList;
import java.util.List;
/**
* 说明:重构流程编辑器获取用户信息
* 作者:FH Admin
* from:fhadmin.cn
*/
public class SecurityUtils {
private static User assumeUser;
private static SecurityScopeProvider securityScopeProvider = new FlowableSecurityScopeProvider();
private SecurityUtils() {
}
/**
* Get the login of the current user.
*/
public static String getCurrentUserId() {
User user = getCurrentUserObject();
if (user != null) {
return user.getId();
}
return null;
}
/**
* @return the {@link User} object associated with the current logged in user.
*/
public static User getCurrentUserObject() {
if (assumeUser != null) {
return assumeUser;
}
RemoteUser user = new RemoteUser();
user.setId(Jurisdiction.getUsername());
user.setDisplayName(Jurisdiction.getName());
user.setFirstName(Jurisdiction.getName());
user.setLastName(Jurisdiction.getName());
user.setEmail("admin@flowable.com");
user.setPassword("123456");
List<String> pris = new ArrayList<>();
pris.add(DefaultPrivileges.ACCESS_MODELER);
pris.add(DefaultPrivileges.ACCESS_IDM);
pris.add(DefaultPrivileges.ACCESS_ADMIN);
pris.add(DefaultPrivileges.ACCESS_TASK);
pris.add(DefaultPrivileges.ACCESS_REST_API);
user.setPrivileges(pris);
return user;
}
public static void setSecurityScopeProvider(SecurityScopeProvider securityScopeProvider) {
SecurityUtils.securityScopeProvider = securityScopeProvider;
}
public static SecurityScope getCurrentSecurityScope() {
SecurityContext securityContext = SecurityContextHolder.getContext();
if (securityContext != null && securityContext.getAuthentication() != null) {
return getSecurityScope(securityContext.getAuthentication());
}
return null;
}
public static SecurityScope getSecurityScope(Authentication authentication) {
return securityScopeProvider.getSecurityScope(authentication);
}
public static SecurityScope getAuthenticatedSecurityScope() {
SecurityScope currentSecurityScope = getCurrentSecurityScope();
if (currentSecurityScope != null) {
return currentSecurityScope;
}
throw new FlowableIllegalStateException("User is not authenticated");
}
public static void assumeUser(User user) {
assumeUser = user;
}
public static void clearAssumeUser() {
assumeUser = null;
}
}
相关推荐
Flowable整合SpringBoot源码
本项目基于 RuoYi-Vue-Plus 进行二次开发,采用 Flowable 扩展工作流应用场景,支持在线表单设计和丰富的工作流程设计能力的一套完整项目。 主要针对Flowable工作流场景开发,前端采用...直接可以整合到自己的项目中。
本项目基于最新6.8.0的flowable,使用最新springboot集成。文档请联系作者索要。 在尽可能保证原生的基础上,扩展适配了一套sdk,可以安全稳定地集成到各种项目上 ## 实现核心 在尽可能复用flowable代码的基础上,...
而Flowable作为一款强大的工作流引擎,被广泛应用于业务流程管理(BPM)。本教程将详细介绍如何将Flowable Modeler 6.4.1集成到Spring Boot项目中,并实现用户免登功能,同时确保BPMN组件已经汉化,便于中国用户使用。...
SpringBoot集成Flowable Modeler是现代企业级应用中实现高效工作流管理的一种常见方式。Flowable是一款开源的工作流引擎,它提供了强大的业务流程自动化能力,包括流程设计、执行和监控。SpringBoot则是一个轻量级的...
网上的都是整合 Flowable-ui-modeler的其他的低版本,当前Flowable版本为6.7.2,所以这个地方做了整合。 正说说明文档地址: https://blog.csdn.net/wangdaoyin2010/article/details/124187676
在Spring Boot应用中整合Flowable-Modeler设计器,可以帮助开发者直观地设计和管理业务流程,提高开发效率。下面将详细介绍如何在Spring Boot项目中集成Flowable-Modeler以及相关知识点。 1. **Spring Boot简介** ...
在本项目"FlowableDemo:SpringBoot + Flowable"中,我们将探讨如何结合SpringBoot框架来实现一个基础的工作流应用。 首先,SpringBoot是基于Spring框架的快速开发工具,它简化了配置,提供了自动配置、内嵌Web...
SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解) 博客地址:https://yangyongli.blog.csdn.net/article/details/132719594
将Flowable与SpringBoot整合,可以轻松地在SpringBoot应用中实现流程自动化。 在"lwj-flowable-master_springboot_flowablemodel_dragonflowable_源码"项目中,我们主要关注以下几个关键知识点: 1. **Flowable ...
springboot+mybatis plus框架让你优雅的开发,真是太强大了,我目前见过的最强大的框架,以后开发,没特殊情况就是它了,真正的让你专注于逻辑的设计。真正实现了约定大于配置,用户只需要简单的注重逻辑实现,根本...
springboot整合flowable的实践代码
SpringBoot + Flowable + Modeler + IDM 是一个高效的企业级工作流管理系统,它结合了SpringBoot的便捷开发特性、Flowable的流程引擎能力、Modeler的流程设计工具以及IDM的身份管理和权限控制功能。这个组合提供了从...
Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-...
基于SpringBoot的flowable流程引擎demo项目 *** ### 运行方法 1. clone 项目到本地 2. 修改数据库配置(需要有数据库表创建权限) 3. 通过数据库工具执行db/init.sql 4. Maven拉取完成之后运行...
系统整合了Flowable工作流引擎来管理业务流程,并支持自定义表单功能。前后端的部署是独立的,前后端交互通过异步跨域JSON格式数据进行。对数据库的依赖为MySQL 5.6版本,而整个项目的运行环境则需要Java 1.8版本的...
springboot-flowable-cims基于工作流引擎flowable、spring boot开发的工作流服务平台,完美整合官方flowable modeler 进行流程设计、表单设计。提供flowable rest api 接口 供后台业务系统流程调用。提供前后端分离...
Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl + flowable!Guns项目代码简洁,注释丰富,上手容易, 同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典...
总结来说,"springboot-flow.zip"项目是一个整合了SpringBoot 2.0.1.RELEASE和Flowable UI Modeler 6.4.1汉化版的示例,它为开发者提供了一个在本地项目中直接编辑和管理BPMN流程的平台,极大地提高了工作效率和用户...