Skip to content

Commit

Permalink
!211 v3.3.0.1
Browse files Browse the repository at this point in the history
Merge pull request !211 from 码匠君/develop
  • Loading branch information
herodotus-ecosystem authored and gitee-org committed May 25, 2024
2 parents 0f4b968 + 66c5745 commit db097cb
Show file tree
Hide file tree
Showing 114 changed files with 2,136 additions and 2,064 deletions.
871 changes: 661 additions & 210 deletions LICENSE

Large diffs are not rendered by default.

89 changes: 54 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
<a href="https://nacos.io/zh-cn/index.html" target="_blank"><img src="https://img.shields.io/badge/Nacos-2.3.2-brightgreen.svg?logo=alibabadotcom" alt="Nacos 2.3.2"></a>
</p>
<p align="center">
<a href="#" target="_blank"><img src="https://img.shields.io/badge/Version-3.3.0.0-red.svg?logo=spring" alt="Version 3.3.0.0"></a>
<a href="https://gitee.com/herodotus/dante-engine" target="_blank"><img src="https://img.shields.io/badge/Dante%20Engine-3.3.0.0-red.svg?logo=spring" alt="Dante Engine 3.3.0.0"></a>
<a href="https://gitee.com/herodotus/dante-oss" target="_blank"><img src="https://img.shields.io/badge/Dante%20OSS-3.3.0.0-red.svg?logo=spring" alt="Dante OSS 3.3.0.0"></a>
<a href="#" target="_blank"><img src="https://img.shields.io/badge/Version-3.3.0.1-red.svg?logo=spring" alt="Version 3.3.0.1"></a>
<a href="https://gitee.com/herodotus/dante-engine" target="_blank"><img src="https://img.shields.io/badge/Dante%20Engine-3.3.0.1-red.svg?logo=spring" alt="Dante Engine 3.3.0.1"></a>
<a href="https://gitee.com/herodotus/dante-oss" target="_blank"><img src="https://img.shields.io/badge/Dante%20OSS-3.3.0.1-red.svg?logo=spring" alt="Dante OSS 3.3.0.1"></a>
<a href="https://bell-sw.com/pages/downloads/#downloads" target="_blank"><img src="https://img.shields.io/badge/JDK-17%2B-green.svg?logo=openjdk" alt="Java 17"></a>
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-Apache--2.0-blue.svg?logo=apache" alt="License Apache 2.0"></a>
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?logo=apache" alt="License AGPL 3.0"></a>
<a href="https://www.herodotus.cn"><img src="https://visitor-badge.laobi.icu/badge?page_id=dante-cloud&title=Total%20Visits" alt="Total Visits"></a>
<a href="https://blog.csdn.net/Pointer_v" target="_blank"><img src="https://img.shields.io/badge/Author-%E7%A0%81%E5%8C%A0%E5%90%9B-orange" alt="码匠君"></a>
<a href="https://gitee.com/dromara/dante-cloud"><img src="https://img.shields.io/github/stars/herodotus-cloud/dante-cloud?style=flat&logo=github" alt="Github star"></a>
Expand All @@ -38,7 +38,7 @@

## 企业级技术中台微服务架构与服务能力开发和管理平台

Dante Cloud (但丁,原 Eurynome Cloud) 是以**高质量代码、低安全漏洞**」为核心,**采用领域驱动模型(DDD)设计思想,完全基于 Spring 生态全域开源技术和 OAuth2.1 协议,支持智能电视、IoT等物联网设备认证**,满足**国家三级等保要求**、支持接口**国密数字信封加解密**、防刷、高防XSS和SQL注入等一系列安全体系的**多租户微服务解决方案**
**Dante Cloud** 是国内首个支持阻塞式和响应式融合的微服务。以**高质量代码、低安全漏洞**」为核心,**采用领域驱动模型(DDD)设计思想,完全基于 Spring 生态全域开源技术和 OAuth2.1 协议,支持智能电视、IoT等物联网设备认证**,满足**国家三级等保要求**、支持接口**国密数字信封加解密**、防刷、高防XSS和SQL注入等一系列安全体系的**多租户微服务解决方案**

## 定位

Expand All @@ -51,7 +51,28 @@ Dante Cloud (但丁,原 Eurynome Cloud) 是以「**高质量代码、低安

新增文档站点 https://www.herodotus.vip 。 该站点目前包含矫正和重新梳理后的系统部署相关内容,后续计划根据系统涉及的详细知识点和模块,在该站点陆续补充对应设计实现和认知理解相关文章(主要面向 Dante Cloud 3.3.X (Reactive 版) 即将发布)。原有站点如无特殊原因,仍旧会保留。欢迎喜欢 Dante Cloud 的朋友持续关注!

## Dante Cloud 特性
## Dante Cloud 响应式版本特性

- `Spring Boot` 已升级至 3.3.0
- `Spring Authorization Server` 已升级至 1.3.0
- 全面采用 Java 21,默认开启虚拟线程,以改善阻塞操作的处理降低系统资源的消耗
- 支持传统的 `阻塞式` 微服务与基于 `Reactor``WebFlux``响应式` 微服务同时运行在一套系统之中
- 不强制使用 `响应式` 方式开发,可根据自身项目对资源吞吐量、资源消耗、特殊功能性能保障的需求,灵活的选择是采用 `响应式` 还是 `阻塞式` 来开发对应的服务。
- 在保持 Dante Cloud 原有 `Spring Authorization Server` 深度扩展的各种特性的前提下,实现 `响应式` 服务的动态鉴权与现有体系的完全融合(无需在代码中使用 `@PreAuthorize` 写死权限,全部通过后台动态管理)
- 向“响应式编程”转变,基于 `Reactor` 重构大量核心代码,进一步提升本系统代码质量和运行效能
- 重新架构所有核心组件模块,进一步降低各模块的耦合性,减少第三方组件依赖深度,简化各模块使用的复杂度,使用更贴近 Spring Boot 生态官方写法,提升模块组件的可插拔性以及 `响应式``阻塞式` 不同环境下自动配置的适配能力
- 实现 `响应式``阻塞式` 不同类型服务,Session 共享体系以及自定义 Session 体系的完美融合(谁说微服务就一定用不到 Session :))。
- 新增 `GRPC` 服务间调用和通信方式,系统核心服务间调用支持 `OpenFeign``GRPC` 两种方式,可通过修改配置实现两种方式的切换。
- 基于 `RSocket` 全面重写 `WebSocket` 消息系统,实现 `WebSocket``响应式` 改造以及 `RSocket` 与 Spring Security 体系的全面集成。支持多实例、跨服务的私信和广播
- 新增 OAuth2 独立客户端,可用于客户端动态注册以及授权码模式
- 新增基于 `Loki + Grafana` 生态的轻量级日志中心和链路追踪解决方案,使用 OSS 作为数据存储,极大地降低资源需求,可作为原有 Skywalking 和 ELK 重量级体系的备选方案,根据实际需要切换。
- 开放纯手写动态表单功能。可实现BPMN、动态表单、Camunda 流程引擎的串联,实现工作流程运转(目前仅支持简单工作流)
- 开放包含自定义属性面板的 BPMN 在线设计器功能。
- 开放物联网设备认证和管理模块,支持基于 Emqx 的物联网设备通信和管理。
- 开放阿里云内容审核、百度 OCR、环信、Emqx、天眼查、Nacos、PolarisMash等第三方 OpenApi 封装模块
- 前端工程支持 Docker 运行,相关参数可通过配置环境变量修改。已上传至 Docker Hub,可以直接下载运行。

## Dante Cloud 3.X 特性

### 1. 核心基础依赖便捷切换

Expand Down Expand Up @@ -105,7 +126,25 @@ Dante Cloud (但丁,原 Eurynome Cloud) 是以「**高质量代码、低安

开发新手在群内提问或新开 Issue 提问前,请先阅读 [【提问的智慧】](https://www.herodotus.cn/others/question/),并确保认真、详细地查阅过本项目 [【在线文档】](https://www.herodotus.cn),特别是【常见问题】章节。避免浪费大家的宝贵时间;

## [1]、总体架构
## [1]、开源协议

> 因近期出现修改包名、删除作者版权信息、二次开源的行为,为保护作者权益,Dante Cloud 自 3.3.X 版本开始,开源协议修改为 AGPL 3.0。
![开源协议](./readme/copyright/agplv3-155x51.png)

### 授权声明

本项目基于 GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL V3) 开源协议,必须遵守以下补充条款。

- 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
- 对未经过授权或不遵循 AGPL 协议二次开源或者商业化我们将追究到底。
- 任何基于本软件而产生的一切法律纠纷和责任,均与作者无关。

### 使用说明

**任何`自用`(仅在内部使用不涉及商业化)修改 Dante Cloud 源码使用公司,必须登记申请否则视为非法使用,留言登记默认合规**。登记地址:在 https://gitee.com/dromara/dante-cloud/issues/I65F5B

## [2]、总体架构

![输入图片说明](./readme/architecture.jpg)

Expand All @@ -123,21 +162,11 @@ Dante Cloud (但丁,原 Eurynome Cloud) 是以「**高质量代码、低安

![输入图片说明](./readme/preview/skywalking.gif)

### (4) 灵活定制验证码

- 滑块拼图验证码

![滑块拼图验证码](./readme/captcha-jigsaw.png)

- 文字点选验证码

![文字点选验证码](./readme/captcha-word-click.png)

## [2]、功能介绍
## [3]、功能介绍

<a href="https://www.herodotus.cn">详情见在线文档</a>

## [3]、技术栈和版本说明
## [4]、技术栈和版本说明

### (1)Spring 全家桶及核心技术版本

Expand Down Expand Up @@ -185,7 +214,7 @@ Dante Cloud (但丁,原 Eurynome Cloud) 是以「**高质量代码、低安
- Vue-Router 4
- Vueliate

## [4]、 版本和分支
## [5]、 版本和分支

### 一、版本号说明

Expand All @@ -202,12 +231,13 @@ Dante Cloud (但丁,原 Eurynome Cloud) 是以「**高质量代码、低安
|------------------------|-----------------------------------------|-----------|--------------------|-------------------------------------------------------------|
| master | Spring Boot 3.3 和 Spring Cloud 2023.0.1 | JDK 17 | 主要发布分支 | 推荐使用代码分支 |
| develop | Spring Boot 3.3 和 Spring Cloud 2023.0.1 | JDK 17 | Development 分支 | 新功能、ISSUE 均以此分支作为开发,发布后会 PR 至 master 分支。开发分支不保证可用 |
| reactive-master | Spring Boot 3.3 和 Spring Cloud 2023.0.1 | JDK 21 | 响应式版本主要发布分支 | 推荐使用代码分支 |
| reactive-develop | Spring Boot 3.3 和 Spring Cloud 2023.0.1 | JDK 21 | 响应式 Development 分支 | 下一代响应式微服务版本开发分支。开发分支不保证可用 |
| 3.1.X | Spring Boot 3.1 和 Spring Cloud 2022.0.X | JDK 17 | 历史代码,不再维护 | 基于 Spring Boot 3.1 时代开发的代码分支,稳定可用,不再维护 |
| 2.7.X | Spring Boot 2.7 和 Spring Cloud 2021.0.X | JDK 8 | 历史代码,不再维护 | 基于 Spring Boot 2.7 时代开发的代码分支,稳定可用,不再维护 |
| spring-security-oauth2 | Spring Boot 2.6 和 Spring Cloud 2021.0.X | JDK 8 | 历史代码,不再维护 | 基于原 Spring Security OAuth2 实现的微服务,稳定可用,因相关组件均不在维护,所以该版本不再维护 |

## [5]、工程结构
## [6]、工程结构

```
dante-cloud
Expand All @@ -234,14 +264,14 @@ dante-cloud
└── └── dante-cloud-oss-ability -- 对象存储服务
```

## [6]、项目地址
## [7]、项目地址

- 后端主工程地址:[https://gitee.com/dromara/dante-cloud](https://gitee.com/dromara/dante-cloud)
- 后端核心组件库地址:[https://gitee.com/herodotus/dante-engine](https://gitee.com/herodotus/dante-engine)
- 后端单体版示例工程地址:[https://gitee.com/herodotus/dante-cloud-athena](https://gitee.com/herodotus/dante-cloud-athena)
- 前端工程地址:[https://gitee.com/herodotus/dante-cloud-ui](https://gitee.com/herodotus/dante-cloud-ui)

## [7]、技术解析
## [8]、技术解析

**Dante Cloud 技术内幕高阶文档专栏(Cookbook)**

Expand All @@ -256,21 +286,10 @@ dante-cloud
| 5 | [OAuth 2 中的鉴权和动态接口鉴权](https://www.foxitsoftware.cn/bhds/payRead/uxq6fi) | 付费,有试读章节 | 带您跟随 Dante Cloud 源代码,由浅入深全面掌握 Spring Security 5 & 6 以及基于 OAuth2 的微服务动态接口鉴权的原理与实现 | ![OAuth 2 中的鉴权和动态接口鉴权](./readme/cookbook/0005.png) |
| 6 | [Spring Boot 3 之 Rest 接口传参方式详解](https://www.foxitsoftware.cn/bhds/payRead/kcsegy) | 付费,有试读章节 | 一文让你彻底掌握 Spring Boot Rest 各种传参方式和方法的”正确打开方式“ | ![Spring Boot 3 之 Rest 接口传参方式详解](./readme/cookbook/0007.png) |

## [8]、安全测试
## [9]、安全测试

Dante Cloud 已通过由第三方进行的软件出厂安全测试。详情参见:[安全测试](https://www.herodotus.cn/guide/get-start/project-introduction.html#%E4%BA%94-%E5%AE%89%E5%85%A8%E6%B5%8B%E8%AF%95)

## [9]、授权协议

本项目基于 Apache License Version 2.0 开源协议,可用于商业项目,但必须遵守以下补充条款。

- 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
- 在延伸的代码中(修改现有源代码衍生的代码中)需要带有原来代码中的协议、版权声明和其他原作者 规定需要包含的说明(请尊重原作者的著作权,不要删除或修改文件中的Copyright和@author信息) 更不要,全局替换源代码中的 Dante Cloud、Herodotus 或 码匠君 等字样,否则你将违反本协议条款承担责任。
- 您若套用本软件的一些代码或功能参考,请保留源文件中的版权和作者,需要在您的软件介绍明显位置 说明出处,举例:本软件基于 Dante Cloud 微服务架构,并附带链接:https://www.herodotus.cn
- 任何基于本软件而产生的一切法律纠纷和责任,均与作者无关。
- 如果你对本软件有改进,希望可以贡献给我们,双向奔赴互相成就才是王道。
- 本项目已申请软件著作权,请尊重开源。

## [10]、参与贡献

1. 在 Gitee fork 项目到自己的 repo
Expand Down
2 changes: 1 addition & 1 deletion configurations/docker/docker-compose/linux/herodotus/.env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION=3.3.0.0
VERSION=3.3.0.1
GATEWAY_SERVICE_NAME=dante-cloud-gateway
GATEWAY_SERVICE_PORT=8847
UAA_SERVICE_NAME=dante-cloud-uaa
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION=3.3.0.0
VERSION=3.3.0.1
GATEWAY_SERVICE_NAME=dante-cloud-gateway
GATEWAY_SERVICE_PORT=8847
UAA_SERVICE_NAME=dante-cloud-uaa
Expand Down
32 changes: 14 additions & 18 deletions dependencies/pom.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2020-2030 ZHENGGENGWEI(码匠君)<herodotus@aliyun.com>
~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
~
~ Dante Cloud 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
~ Copyright (c) 2020-2030 郑庚伟 ZHENGGENGWEI (码匠君), <herodotus@aliyun.com> Licensed under the AGPL License
~
~ http://www.apache.org/licenses/LICENSE-2.0
~ This file is part of Dante Cloud.
~
~ 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.
~ Dante Cloud is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published
~ by the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ Dante Cloud 采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
~ Dante Cloud is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ 1.请不要删除和修改根目录下的LICENSE文件。
~ 2.请不要删除和修改 Dante Cloud 源码头部的版权声明。
~ 3.请保留源码和相关描述文件的项目出处,作者声明等。
~ 4.分发源码时候,请注明软件出处 https://gitee.com/dromara/dante-cloud
~ 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/dromara/dante-cloud
~ 6.若您的项目无法满足以上几点,可申请商业授权
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.herodotus.cn>.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0"
Expand All @@ -32,7 +28,7 @@
<parent>
<groupId>cn.herodotus.engine</groupId>
<artifactId>dependencies</artifactId>
<version>3.3.0.0</version>
<version>3.3.0.1</version>
<relativePath/>
</parent>

Expand Down
32 changes: 14 additions & 18 deletions modules/dante-module-common/pom.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2020-2030 ZHENGGENGWEI(码匠君)<herodotus@aliyun.com>
~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
~
~ Dante Cloud 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
~ Copyright (c) 2020-2030 郑庚伟 ZHENGGENGWEI (码匠君), <herodotus@aliyun.com> Licensed under the AGPL License
~
~ http://www.apache.org/licenses/LICENSE-2.0
~ This file is part of Dante Cloud.
~
~ 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.
~ Dante Cloud is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published
~ by the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ Dante Cloud 采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
~ Dante Cloud is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ 1.请不要删除和修改根目录下的LICENSE文件。
~ 2.请不要删除和修改 Dante Cloud 源码头部的版权声明。
~ 3.请保留源码和相关描述文件的项目出处,作者声明等。
~ 4.分发源码时候,请注明软件出处 https://gitee.com/dromara/dante-cloud
~ 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/dromara/dante-cloud
~ 6.若您的项目无法满足以上几点,可申请商业授权
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.herodotus.cn>.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0"
Expand All @@ -32,7 +28,7 @@
<parent>
<artifactId>modules</artifactId>
<groupId>cn.herodotus.dante</groupId>
<version>3.3.0.0</version>
<version>3.3.0.1</version>
</parent>

<artifactId>dante-module-common</artifactId>
Expand Down
Loading

0 comments on commit db097cb

Please sign in to comment.