`
m1702391738
  • 浏览: 16958 次
文章分类
社区版块
存档分类
最新评论

flowable 整合 springboot

 
阅读更多

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;
	}
}

 

0
0
分享到:
评论

相关推荐

    Flowable整合SpringBoot源码

    Flowable整合SpringBoot源码

    工作流流程引擎flowable+springboot+vue3完整项目

    本项目基于 RuoYi-Vue-Plus 进行二次开发,采用 Flowable 扩展工作流应用场景,支持在线表单设计和丰富的工作流程设计能力的一套完整项目。 主要针对Flowable工作流场景开发,前端采用...直接可以整合到自己的项目中。

    SpringBoot2.7集成flowable最新版,java工作流服务端实现,解耦设计

    本项目基于最新6.8.0的flowable,使用最新springboot集成。文档请联系作者索要。 在尽可能保证原生的基础上,扩展适配了一套sdk,可以安全稳定地集成到各种项目上 ## 实现核心 在尽可能复用flowable代码的基础上,...

    Springboot集成flowable-modeler(6.4.1) 实现免登(BPMN组件已汉化)

    而Flowable作为一款强大的工作流引擎,被广泛应用于业务流程管理(BPM)。本教程将详细介绍如何将Flowable Modeler 6.4.1集成到Spring Boot项目中,并实现用户免登功能,同时确保BPMN组件已经汉化,便于中国用户使用。...

    springboot-flowable-modeler快速开发工作流, 在线流程设计器

    SpringBoot集成Flowable Modeler是现代企业级应用中实现高效工作流管理的一种常见方式。Flowable是一款开源的工作流引擎,它提供了强大的业务流程自动化能力,包括流程设计、执行和监控。SpringBoot则是一个轻量级的...

    Spring Boot 整合 Flowable-ui-modeler 6.7.2代码

    网上的都是整合 Flowable-ui-modeler的其他的低版本,当前Flowable版本为6.7.2,所以这个地方做了整合。 正说说明文档地址: https://blog.csdn.net/wangdaoyin2010/article/details/124187676

    springBoot 整合flowable-modeler设计器

    在Spring Boot应用中整合Flowable-Modeler设计器,可以帮助开发者直观地设计和管理业务流程,提高开发效率。下面将详细介绍如何在Spring Boot项目中集成Flowable-Modeler以及相关知识点。 1. **Spring Boot简介** ...

    FlowableDemo:SpringBoot + Flowable

    在本项目"FlowableDemo:SpringBoot + Flowable"中,我们将探讨如何结合SpringBoot框架来实现一个基础的工作流应用。 首先,SpringBoot是基于Spring框架的快速开发工具,它简化了配置,提供了自动配置、内嵌Web...

    SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化项目

    SpringBoot 集成 Flowable + Flowable Modeler 流程配置可视化(图解) 博客地址:https://yangyongli.blog.csdn.net/article/details/132719594

    lwj-flowable-master_springboot_flowablemodel_dragonflowable_源码

    将Flowable与SpringBoot整合,可以轻松地在SpringBoot应用中实现流程自动化。 在"lwj-flowable-master_springboot_flowablemodel_dragonflowable_源码"项目中,我们主要关注以下几个关键知识点: 1. **Flowable ...

    springboot整合mybatisplus实现敏捷开发

    springboot+mybatis plus框架让你优雅的开发,真是太强大了,我目前见过的最强大的框架,以后开发,没特殊情况就是它了,真正的让你专注于逻辑的设计。真正实现了约定大于配置,用户只需要简单的注重逻辑实现,根本...

    springboot整合flowable的实践代码

    springboot整合flowable的实践代码

    springboot + flowable + modeler + idm

    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-59-整合Flowable工作流-源代码+文档.rar Java开发案例-...

    基于SpringBoot的flowable流程引擎+源代码+文档说明

    基于SpringBoot的flowable流程引擎demo项目 *** ### 运行方法 1. clone 项目到本地 2. 修改数据库配置(需要有数据库表创建权限) 3. 通过数据库工具执行db/init.sql 4. Maven拉取完成之后运行...

    OA办公系统 Springboot vue.js前后分离,Flowable工作流自定义表单

    系统整合了Flowable工作流引擎来管理业务流程,并支持自定义表单功能。前后端的部署是独立的,前后端交互通过异步跨域JSON格式数据进行。对数据库的依赖为MySQL 5.6版本,而整个项目的运行环境则需要Java 1.8版本的...

    springboot-flowable-cims基于工作流引擎flowable、spring boot开发的工作流服务平台

    springboot-flowable-cims基于工作流引擎flowable、spring boot开发的工作流服务平台,完美整合官方flowable modeler 进行流程设计、表单设计。提供flowable rest api 接口 供后台业务系统流程调用。提供前后端分离...

    springboot整合的开源Guns

    Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl + flowable!Guns项目代码简洁,注释丰富,上手容易, 同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典...

    springboot-flow.zip

    总结来说,"springboot-flow.zip"项目是一个整合了SpringBoot 2.0.1.RELEASE和Flowable UI Modeler 6.4.1汉化版的示例,它为开发者提供了一个在本地项目中直接编辑和管理BPMN流程的平台,极大地提高了工作效率和用户...

Global site tag (gtag.js) - Google Analytics