[Flowable] 集成Spring Boot和流程设计编辑器破解教程程

2019-07-25 16:38:04 浏览数 (1)

[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、静态文件的获取、静态资源访问配置等

gradle 主要依赖

代码语言:javascript复制
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 进行安全校验的拦截。这个拦截的存在,无法使我们的后台和前端简历一个正常的交互。下面我们开始破解安全校验的拦截。

启动类忽略扫描Spring Security配置相关的配置类

代码语言:javascript复制
@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流程设计器整合教程

0 人点赞