当前位置: 首页 > news >正文

通过`exclude`排除冲突的Security自动配置类,解决Activiti与若依权限体系的兼容性问题;

你提供的这段代码是若依(RuoYi)框架集成Activiti后的启动类核心配置,我会先解析这段配置的核心作用,再说明关键细节和扩展优化方向。

一、代码核心需求与作用解析

你编写的RuoYiApplication启动类通过@SpringBootApplicationexclude属性排除了Spring Security相关的自动配置类,核心目的是:

  • 解决Activiti与若依框架中Spring Security的冲突(Activiti内置的Security配置易与若依的权限体系冲突);
  • 禁用Spring Boot默认的安全自动配置,改用若依框架自身的权限控制体系(如Shiro/自定义Security);
  • 保证Activiti工作流模块能正常启动,且不影响若依原有功能。

二、关键配置项逐行解析

排除的配置类核心作用排除原因
org.activiti.spring.boot.SecurityAutoConfiguration.classActiviti内置的安全自动配置类与若依的权限体系(如Shiro)冲突,会导致重复的安全过滤器、权限拦截等问题
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.classSpring Boot核心的Security自动配置若依框架通常自定义了权限控制,无需Spring Boot默认的Security配置,排除后避免默认登录页、CSRF拦截等干扰
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.classSpring Boot监控模块(Actuator)的Security配置若无需Actuator的安全控制,排除后简化配置,避免监控端点的权限冲突

三、完整可运行的启动类代码(补充规范)

结合若依框架的最佳实践,补充完整的启动类代码(包含必要注解、包扫描、启动方法):

packagecom.ruoyi;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;importorg.springframework.context.annotation.ComponentScan;/** * 若依启动类(集成Activiti工作流) * 排除Security自动配置,解决与Activiti/若依权限体系的冲突 */@SpringBootApplication(exclude={// 排除Activiti内置Security配置org.activiti.spring.boot.SecurityAutoConfiguration.class,// 排除Spring Boot默认Security配置org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,// 排除Actuator监控模块的Security配置org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class,// 可选:若依多数据源场景,排除默认数据源自动配置DataSourceAutoConfiguration.class})// 扫描Mapper接口(若依MyBatis配置)@MapperScan("com.ruoyi.**.mapper")// 扫描自定义组件(覆盖若依所有模块,包括activiti)@ComponentScan(basePackages="com.ruoyi")publicclassRuoYiApplication{publicstaticvoidmain(String[]args){// 启动Spring Boot应用SpringApplication.run(RuoYiApplication.class,args);System.out.println("(♥◠‿◠)ノ゙ 若依集成Activiti启动成功 ლ(´ڡ`ლ)゙ ");}}

四、关键注意事项(避坑指南)

1. 若依版本适配
  • 若使用若依Vue版(ruoyi-vue):默认用Shiro做权限控制,排除Security配置后无影响;
  • 若使用若依Cloud版:需额外确认微服务间的权限传递,避免排除后导致网关/认证中心权限失效。
2. Activiti权限控制补充

排除Security后,需手动配置Activiti的权限(如流程定义、任务的访问权限):

// 示例:配置Activiti无安全校验(开发环境)@BeanpublicProcessEngineConfigurationConfigurerprocessEngineConfigurationConfigurer(){returnconfiguration->{// 禁用Activiti的权限校验(生产环境需自定义)configuration.setEnableProcessDefinitionPermissions(false);configuration.setEnableTaskPermissions(false);};}
3. 生产环境优化
  • 开发环境可直接排除所有Security配置;
  • 生产环境建议保留必要的Security配置,仅排除冲突的ActivitiSecurityAutoConfiguration,并自定义Activiti的权限拦截:
    @SpringBootApplication(exclude={// 仅排除Activiti的Security配置,保留Spring Boot默认Securityorg.activiti.spring.boot.SecurityAutoConfiguration.class})

五、总结

  1. 核心作用:通过exclude排除冲突的Security自动配置类,解决Activiti与若依权限体系的兼容性问题;
  2. 关键扩展:补充@MapperScan@ComponentScan保证若依所有模块(包括activiti)的组件被扫描;
  3. 环境适配:开发环境可全排除Security,生产环境需按需保留并自定义Activiti权限;
  4. 无副作用:排除后不影响若依原有功能(如Shiro权限、菜单管理),也不影响Activiti流程引擎的核心能力。

这段配置是若依集成Activiti的核心启动配置,保证了框架能正常启动且权限体系不冲突,是生产环境中常用的适配方案。

http://www.jsqmd.com/news/212201/

相关文章:

  • Thinkphp和Laravel框架的流浪猫领养系统_ct8whxh8
  • MYSQL 创建索引
  • MySql 8.0安装教程(windows系统),全网最详细的教程
  • Tailwind CSS:告别传统CSS,拥抱原子化开发新时代
  • RK3576基于UVC协议USB摄像头配置指南,手把手教你搞定
  • 性能指标笔记
  • Thinkphp和Laravel框架的海关出入口货物报关统筹管理系统_szdhjj06
  • ubuntu系统_每天定时23:00 定时关机_怎么实现
  • HTML 表单元素与 React 中的其他 DOM 元素有所不同
  • 2026年最好用的六大代理IP服务商推荐:IPIDEA、Decodo、Smartproxy、IPRoyal、SOAX、Oxylabs
  • indirectly_readable和indirectly_writable这两个核心概念的具体定义和使用场景是什么?
  • 数据库分片和分区
  • 超绝好用清理软件工具,(附下载方式)超多好用功能
  • 何为Transformer 架构?
  • HiBit Uninstaller全攻略:轻量无广,彻底告别软件残留(附下载方式)
  • 电阻的基础知识
  • jvm性能调优
  • 【光子AI】FastAPI 极简权威指南 (The Ultimate Minimalist Guide)
  • 【光子AI】FastAPI 极简教程(从 0 到 生产级)
  • mysql一条sql语句是如何运行的
  • 什么是勒索软件即服务(RaaS)
  • MySQL 8.0在windows环境安装及配置
  • MySQL 导出数据
  • 【计算机毕业设计案例】基于深度学习CNN的水果识别
  • 什么是立体射频调优
  • 什么是零漫游分布式AP
  • Thinkphp和Laravel框架的西安工商学院学生请假管理系统_s4hrg6g5
  • 什么是零日攻击
  • MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
  • 全网最全9个AI论文平台,专科生毕业论文写作必备!