5 Star 14 Fork 12

Elwin / EZLCP-java

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

易睿低代码平台 EZLCP 后端

一. 介绍

Easy Low-Code Platform 低代码开发平台的Java后端,基于Spring boot 3.0 技术(java17+),使用Spring Cloud 微服务架构开发。除工作流引擎模块外,其他模块已基本上完成开发。

使用以下技术:

Spring Boot 3.0
Spring Cloud Gateway 
Spring Cloud OpenFeign 
Spring Cloud Alibaba Nacos
mybatis plus 3.5.3.1
knife4j 4.0.0
resilience4j ...

二、目录

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值加到Authorizationtoken请求头参数中。相关微服务中配置拦截器(参考:com.ezlcp.commons.config.InterceptorConfig),校验token并将token对应的用户信息缓存在当前线程中,控制器或其他类中可以使用ContextUtil.getCurrentUser()方法,获取当前登录用户的信息。

3.4 网关过滤器

TokenRequestFilter 统一拦截前端调用各微服务接口时请求头中是否带Authorizationtoken参数; 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

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

Easy Low-Code Platform (EZLCP) java后端。 使用:Spring Boot 3.0,Spring Cloud 2022.0.2,Spring Cloud Alibaba 2022.0.0.0…… 展开 收起
Java
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/IElwin/ezlcp-java.git
git@gitee.com:IElwin/ezlcp-java.git
IElwin
ezlcp-java
EZLCP-java
master

搜索帮助