[Flowable] 集成Spring Boot和流程设计编辑器破解教程
@TOC
之前写过一篇基于Flowable 6.2.1的流程设计器整合和破解教程,一度认识了很多对工作流感兴趣的小伙伴们。后来有些伙伴联系我,希望我可以整理一份关于最新Flowable和Spring Boot的流程设计器整合教程。其实心里也一直有这个计划,这不,默默利用下班时间钻研了半个多月,终于整出来了,有需要的同学可以好好看看。还是那句话,思路很重要,其余的能力慢慢补充。^_^ !
本文主要为了开发学习和分享,转载请注明出处。Flowable的使用请尽量使用官方发布版本,涉及知识产权部分请谨慎使用,尤其是公司产品开发过程中,请特别注意!
手机用户请
横屏
获取最佳阅读体验,REFERENCES
中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。
平台 | 地址 |
---|---|
CSDN | https://blog.csdn.net/sinat_28690417 |
简书 | https://www.jianshu.com/u/3032cc862300 |
个人博客 | http://xiazhaoyang.tech/ |
开发环境
- gradle ------------------------------------------------------------ Gradle 4.7 ------------------------------------------------------------ Build time: 2018-04-18 09:09:12 UTC Revision: b9a962bf70638332300e7f810689cb2febbd4a6c Groovy: 2.4.12 Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017 JVM: 1.8.0_171 (Oracle Corporation 25.171-b11) OS: Mac OS X 10.13.5 x86_64
- flowable 6.4.1
- spring-boot 2.0.5
整合步骤
项目搭建
主要是项目核心依赖jar、静态文件的获取、静态资源访问配置等
代码语言:javascript复制gradle 主要依赖
dependencies {
compile "org.springframework.boot:spring-boot-starter-web"
compile "org.flowable:flowable-ui-modeler-rest:6.4.1"
compile "org.flowable:flowable-ui-modeler-conf:6.4.1"
compile libs["mysql-connector-java"]
testCompile "org.springframework.boot:spring-boot-starter-test"
}
官网下载flowable-modeler.war,下载并解压其中静态文件集成到项目中
官网提供的github下载地址比较慢,可以直接从下文的百度网盘中获取。
>>>百度网盘下载地址
配置静态资源访问
后台资源访问
前端路由配置
两个文件中都增加路由前缀。为的是构造restDispatchServlet来扫描Mapping注入Spring容器。
代码语言:javascript复制@Configuration
public class ServletConfiguration {
@Bean
public ServletRegistrationBean appDispatcherServlet(){
//注解扫描上下文
AnnotationConfigWebApplicationContext applicationContext
= new AnnotationConfigWebApplicationContext();
//base package
applicationContext.scan("org.flowable.modeler.rest","org.flowable.ui.modeler");
//通过构造函数指定dispatcherServlet的上下文
DispatcherServlet appdispatcherServlet
= new DispatcherServlet(applicationContext);
//用ServletRegistrationBean包装servlet
ServletRegistrationBean registrationBean
= new ServletRegistrationBean(appdispatcherServlet);
registrationBean.setLoadOnStartup(2);
//指定urlmapping
registrationBean.addUrlMappings("/activiti/*");
//指定name,如果不指定默认为dispatcherServlet
registrationBean.setName("appDispatcherServlet");
return registrationBean;
}
}
鉴权破解
经过上文的配置,基本静态资源的访问和接口的访问已经是没问题了,但是flowable在分模块开发后,已经集成了Spring Security 进行安全校验的拦截。这个拦截的存在,无法使我们的后台和前端简历一个正常的交互。下面我们开始破解安全校验的拦截。
代码语言:javascript复制启动类忽略扫描Spring Security配置相关的配置类
@SpringBootApplication
@EnableAutoConfiguration(exclude = {
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})
@ComponentScan(basePackages = {"com.example.modeler.common"})
public class CapsuleFlowableModelerApplication {
public static void main(String[] args) {
SpringApplication.run(CapsuleFlowableModelerApplication.class, args);
}
}
此处主要为了取消Spring Security的默认拦截。
构造虚拟用户,跳过所有鉴权
此处选择需要处理的主要是和权限相关的类和请求Handle就行了,多余的无需覆盖。
Problems
mysql 中文数据插入乱码
>>>2019-03-17-mysql-case
效果演示
REFERENCES
- V6.3用户手册
- 官方Github
- security.basic.enabled 配置过时或不可用
之前写的一篇文章,可以结合起来看。
[ Flowable ] 与modeler流程设计器整合教程