# EZLCP-java **Repository Path**: IElwin/ezlcp-java ## Basic Information - **Project Name**: EZLCP-java - **Description**: Easy Low-Code Platform (EZLCP) java后端。 使用:Spring Boot 3.0,Spring Cloud 2022.0.2,Spring Cloud Alibaba 2022.0.0.0…… - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 22 - **Forks**: 14 - **Created**: 2022-04-13 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: 低代码平台, 低代码开发平台, low-code, lowcode, SpringBoot3 ## README #
易睿低代码平台 EZLCP 后端 ### 一. 介绍 Easy Low-Code Platform 低代码开发平台的Java后端,基于Spring boot 3.x 技术(java17+),使用Spring Cloud 微服务架构开发。除工作流引擎模块外,其他模块已基本上完成开发。 使用以下技术: ``` Spring Boot 3.3.2 Spring Cloud Gateway Spring Cloud OpenFeign Spring Cloud Alibaba Nacos mybatis plus 3.5.3.1 knife4j 4.5.0 resilience4j ... camunda 7.22.0 ``` - 产品介绍:[https://gitee.com/IElwin/ezlcp-pc/blob/master/doc/intro/index.md](https://gitee.com/IElwin/ezlcp-pc/blob/master/doc/intro/index.md) - PC前端项目代码:[https://gitee.com/IElwin/ezlcp-pc](https://gitee.com/IElwin/ezlcp-pc) ### 二、目录 #### 2.1 ezlcp-user 用户及系统相关模块 #### 2.2 ezlcp-log 日志模块 #### 2.3 ezlcp-form 表单模块 #### 2.4 ezlcp-flow 工作流程模块 #### 2.5 ezlcp-gateway 网关模块 #### 2.6 init 数据库初始化脚本、nacos配置导出包 ### 三、安全控制 #### 3.1 密码加密 在`s_settings`表中为各租户配置: `用户密码长度,密码强度`。前端的密码在传到后端接口时要加密(md5加盐,与getFirstPassword方法中的盐保持一致),后端接收到前端传来的密文,再调用getMd5Password方法再次加密后再保存到数据库;数据库中的密码是二次加密的,可以防止数据库记录复制密码粘贴到另一条记录(当时放弃使用Spring Security框架除了太重之外,另一个原因就是不能解决密文复制的问题)。 加密方法在com.ezlcp.commons.tool.Encrypt类中,如果重置数据库数据库中某用户的密码,修改main方法中的用户ID和初始密码,运行main方法就可以得到前端要传入的密文,以及保存在数据库中的密文。 #### 3.2 登录控制 在s_settings表中为各租户配置: `登录失败几次锁定账号,锁定时间,空闲多久自动登出,是否启用谷歌身份验证器,以及是否启用IP地址黑名单/白名单`,来增强安全控制,防止非法入侵。 #### 3.3 token 前后端分离,使用token验证客户端,不使用session和cookie。前端调用登录接口后获得token值(后台存在redis中),调用后台的其他接口时,需要将token值加到`Authorization`或`token`请求头参数中。相关微服务中配置拦截器(参考:`com.ezlcp.commons.config.InterceptorConfig`),校验token并将token对应的用户信息缓存在当前线程中,控制器或其他类中可以使用ContextUtil.getCurrentUser()方法,获取当前登录用户的信息。 #### 3.4 网关过滤器 `TokenRequestFilter` 统一拦截前端调用各微服务接口时请求头中是否带`Authorization`或`token`参数; `XssRequestGlobalFilter` 统一处理请求中的XSS攻击;因为ORM层使用的是Mybatis框架,SQL注入的可能性很小,所以只做XSS字符过滤。 以上两个过滤器都可以在`application.yml`中配置白名单。 ### 四、自定义数据源 可以在不同的数据库中创建实体、表单,默认支持`MySQL`/`MariaDB`/`PostgreSQL`/`SQL Server`/`Oracle`这5种数据库。如果想支持其他类型关系型数据库,需要在ezlcp-form等微服务的pom.xml文件中引入相应的jdbc驱动程序,然后在定义数据源时指定`driverClassName`属性值即可。系统使用的是Druid数据源,默认会根据url自动误别`driverClassName`,但有些小众的数据库是无法识别的,比如:达梦,就需要指定jdbc驱动程序类名。 ### 五、QQ交流群 群号:259395201