Skip to content

Commit

Permalink
✨ feat: v2.7.0.0
Browse files Browse the repository at this point in the history
- 主要更新
  - Spring Boot 版本升级至 2.7.0
- 其它更新
  - 修正新版 Spring Boot 下 applicationContext 获取 Bean RequestMappingHandlerMapping 出错问题。
  - 修正权限数据通过消息队列传递, Jackson 反序列化出错问题。
  - 修正新版 Spring Boot 下,OkHttp 与已有 Spring Cloud 版本不兼容,导致服务无法启动问题。
  - 将 RestTemplate 底层客户端组件,临时由 OkHttp 改为 HttpClient,以规避 Okhttp 与 Spring Cloud 不兼容问题
- 依赖更新
  - Maven Invoker 版本升级至 3.2.0
  - Minio 版本升级至 8.4.1
  - Hutool 版本升级至 5.8.1
  - Okhttps 版本升级至 3.5.2
  - WxJava 版本升级至 4.3.3.B
  - Alipay-sdk-java 版本升级至 4.23.21.ALL
  • Loading branch information
herodotus-ecosystem committed May 21, 2022
1 parent 3b82eda commit 4ca351f
Show file tree
Hide file tree
Showing 26 changed files with 81 additions and 56 deletions.
54 changes: 36 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<a href="https://spring.io/projects/spring-cloud" target="_blank"><img src="https://shields.io/badge/Spring%20Cloud-2021.0.2-blue" alt="Spring Cloud 2021.0.2"></a>
<a href="https://github.com/alibaba/spring-cloud-alibaba" target="_blank"><img src="https://shields.io/badge/Spring%20Cloud%20Alibaba-2021.0.1.0-blue" alt="Spring Cloud Alibaba 2021.0.1.0"></a>
<a href="https://github.com/spring-projects/spring-authorization-server" target="_blank"><img src="https://img.shields.io/badge/Spring%20Authorization%20Server-0.2.3-blue" alt="Spring Authorization Server 0.2.3"></a>
<a href="https://nacos.io/zh-cn/index.html" target="_blank"><img src="https://shields.io/badge/Nacos-2.0.4-brightgreen" alt="Nacos 2.0.4"></a>
<a href="https://nacos.io/zh-cn/index.html" target="_blank"><img src="https://shields.io/badge/Nacos-2.1.0-brightgreen" alt="Nacos 2.1.0"></a>
<a href="./LICENSE"><img src="https://shields.io/badge/License-Apache--2.0-blue" alt="License Apache 2.0"></a>
<a href="https://blog.csdn.net/Pointer_v" target="_blank"><img src="https://shields.io/badge/Author-%E7%A0%81%E5%8C%A0%E5%90%9B-orange" alt="码匠君"></a>
<a href="#" target="_blank"><img src="https://shields.io/badge/Version-2.7.0.RC1-red" alt="Version 2.7.0.RC1"></a>
<a href="#" target="_blank"><img src="https://shields.io/badge/Version-2.7.0.0-red" alt="Version 2.7.0.0"></a>
<a href="https://gitee.com/herodotus/eurynome-cloud"><img src="https://gitee.com/herodotus/eurynome-cloud/badge/star.svg?theme=dark" alt="Gitee star"></a>
<a href="https://gitee.com/herodotus/eurynome-cloud"><img src="https://gitee.com/herodotus/eurynome-cloud/badge/fork.svg?theme=dark" alt="Gitee fork"></a>
</p>
Expand All @@ -30,7 +30,7 @@

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

Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基于Spring Boot 2.6.7、Spring Cloud 2021.0.2、Spring Cloud Alibaba 2021.0.1.0、Spring Authorization Server 0.2.3、Nacos 2.0.4 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用。
Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基于Spring Boot 2.7.0、Spring Cloud 2021.0.2、Spring Cloud Alibaba 2021.0.1.0、Spring Authorization Server 0.2.3、Nacos 2.1.0 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能,代码简洁,架构清晰,非常适合学习和企业作为基础框架使用。

## 平台定位

Expand All @@ -41,16 +41,16 @@ Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基

## 升级说明

`Spring Security OAuth2` 彻底停止维护、Spring Boot 2.7.0 正式发布之时,又恰逢 `Eurynome Cloud` 开源一周年之际,推出基于Spring Authorization Server 0.2.3、Spring Boot 2.6.7、Spring Cloud 2021.0.2、Spring Cloud Alibaba 2021.0.1.0 和 Nacos 2.0.4 的全新版本
`Spring Security OAuth2` 彻底停止维护、Spring Boot 2.7.0 正式发布之时,又恰逢 `Eurynome Cloud` 开源一周年之际,推出基于Spring Authorization Server 0.2.3、Spring Boot 2.7.0、Spring Cloud 2021.0.2、Spring Cloud Alibaba 2021.0.1.0 和 Nacos 2.1.0 的全新正式版本

## 新版特点

- 基于 `Spring Authorization Server` 深度定制:
- 基于 `Spring Data JPA`,重新构建 `Spring Authorization Server` 基础数据存储代码,替代原有 JDBC 数据访问方式,破除 `Spring Authorization Server` 原有数据存储局限,扩展为更符合实际应用的方式和设计。
- 基于 `Spring Authorization Server`,在 OAuth 2.1 规范基础之上,增加自定义“密码”认证模式,以兼容现有基于 OAuth 2 规范的、前后端分离的应用。
- 基于 `Spring Authorization Server`,在 OAuth 2.1 规范基础之上,增加自定义Social Credentials 认证模式,支持手机短信验证码、微信小程序、第三方应用登录。
- 完全遵照 `Spring Security 5` 以及 `Spring Authorization Server` 的代码规范,进行 OAuth2 认证服务器核心代码的开发,遵照其使用 Jackson 反序列化的方式, 增加大量自定义 Jackson Module。
- 除支持 `Spring Authorization Server` 的标准的Token加密校验方式外,还了增加支持自定义证书的 Token 加密方式,可通过配置动态修改
- 遵照 `Spring Security 5` 以及 `Spring Authorization Server` 的代码规范,进行 OAuth2 认证服务器核心代码的开发,遵照其使用 Jackson 反序列化的方式, 增加大量自定义 Jackson Module。
- 支持 `Spring Authorization Server` 的标准的Token加密校验方式外,还了增加支持自定义证书的 Token 加密方式,可通过配置动态修改
- 支持 OAuth2 OIDC 认证模式,补充前端 OIDC 认证相关配置操作,以及对应的 /userinfo 接口调用支持 和 客户端注册支持
- 支持 OAuth2 Authorization Code PKCE 认证模式
- 扩展 `Spring Authorization Server` 默认的 `Client Credentials` 模式,实现 Refresh Token 的创建。
Expand All @@ -66,19 +66,33 @@ Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基

俗话说:不看“广告”,看“疗效”。本项目除了将微服务应用涉及的“标准动作”实现之外,也尽可能的“推陈出新”,增加大量细节内容,不仅更加“包容兼顾”,也更利于开发使用。加之本着不重复“造轮子”的原则,在能使用成熟组件代码的情况下,绝不重复实现相关代码,代码实现简洁、可读性高。本项目后端代码最为闪耀,细节满满,值得品鉴。

- 完全按照 Spring Boot 标准化的方式,装配模块和相关代码。大量使用自定义 @ConditionOnXXX@EnableXXX 注解,实现配置的动态、灵活的注入。
- 遵照 Spring Boot 标准化的方式,装配模块和相关代码。大量使用自定义 @ConditionOnXXX@EnableXXX 注解,实现配置的动态、灵活的注入。
- 大量使用 Spring 和 Spring Boot 自身的事件驱动、InitializingBean等机制,实现相关代码逻辑,代码更加清晰、逻辑更加简洁、维护更加方便。
- 大量使用基于 Spring Boot 的策略模式和工厂模式,让同质的功能可以条件化、策略化的注入,便于根据使用者自身需求动态变更支持代码。
- 集成较多同质组件或代码实现的可选择化使用,选择更丰富,使用更灵活:
- 默认使用 `Spring Data JPA` 作为数据访问层,支持同时使用 `Mybatis Plus` 编写数据访问代码。(注:是同时使用,不是切换)
- 默认使用 `Spring Data Redis` 作为Redis的操作客户端,同时集成 Redisson,可通过配置动态开启或关闭。
- 集成阿里,百度,中国移动,华为,京东,极光,网易,七牛,腾讯,又拍,云片等平台短信发送通道,可通过配置动态开启或关闭。
- 支持滑块拼图、文字点选、算数类型、中文类型、字母类型、GIF类型,以及 Hutool 圆圈干扰、扭曲干扰、线段干扰等多种类型验证码
- 基于 JustAuth 和 自定义 OAuth2 认证模式,支持机构人员、手机验证码、微信小程序、QQ、微博、百度、微信开放平台、微信公众号、企业微信二维码、企业微信网页、钉钉、钉钉账号、阿里云、淘宝、支付宝、Teambition、华为、飞书、京东、抖音、今日头条、小米、人人、美团、饿了么、酷家乐、喜马拉雅、码云、开源中国、Github、Gitlab、Stackoverflow、Coding、谷歌、微软、脸书、领英、推特、亚马逊、Slack、Line、Okta、Pinterest等多种途径或第三方登录
- 自定义多级缓存,与 `Spring Data JPA` 有机整合,有效解决 `Spring Cache` 等缓存对条件查询、分页查询支持不够便捷的问题。
- 基于数字信封原理,综合使用对称和非对称加密算法,实现前后端数据加密传输。支持国密算法 SM2 和 SM4 混合以及标准的 RSA 和 AES 混合。可通过配置文件配置进行切换。
- 基于数字信封原理,综合使用对称和非对称加密算法,实现前后端数据加密传输。支持国密算法 SM2 和 SM4 混合以及标准的 RSA 和 AES 混合。可通过配置文件配置进行切换,通过注解灵活个性化设置
- 基于自定义 Session 实现秘钥动态生成、加密传输、一人一钥的安全机制,可通过配置动态开启和关闭。不是使用传统 Filter 方式进行加密处理,而是扩展 @RequestParam 等注解实现逻辑实现数据加解密。支持使用自定义注解灵活配置加密策略以及数据缓存策略。
-
- 遵照知名开源项目方式,设计 Maven Dependencies 依赖继承结构,结构清晰明了、依赖干净无冗余、修改维护便捷。各个模块以最小化模式进行包的依赖,简洁清爽,逻辑清晰,不会出现依赖循环问题。
- 个性化设计 Nacos 配置文件关系及逻辑,将高频修改配置参数统一提取,仅需在同一配置文件修改少量参数即可完成环境搭建和配置控制,降低修改参数的出错率。
- 将 Maven、Spring Boot、Nacos、Docker 等内容涉及的多环境配置有机融合和关联,可以方便地在各个环境中切换。
- 包含 Git 提交信息打包、源代码生成、容器打包等多种 Maven 构建插件及配置,相关信息也可在 `Spring Boot Admin` 展现。
- 集成较多同质组件或代码实现的可选择化使用,选择更丰富,使用更灵活

> 更多细节,欢迎对本项目进行深入了解
## 额外说明

1. 本项目以后将主要维护 `Spring Authorization Server` 版本,原有基于 `Spring Security OAuth2` 的版本已经移至 spring-security-oauth2 分支,可以从该分支或发行版页面获取历史版本继续使用。后期会根据 ISSUE 以及使用用户反馈情况,再行决定是否继续维护 `Spring Security OAuth2` 版本。
2. 最新版本代码,暂时继续沿用原有基于 Vue2、Vuetify2、Typescript开发的前端系统。基于 Vue3、Vite2、Vuetify3、Pinia 等新版前端正在加进开发中,由于 Vuetify3 版本发布跳票以及部分已有组件的缺失,导致新版前端开发延后。
3. 原有基于 Vue2、Vuetify2、Typescript 开发的前端,由于使用了过渡性 Typescript IOC 组件,以及依赖组件版本限制等问题,初次接触该项目在编译过程中会出现一些问题,请移步至本项目在线文档,详见“常见问题”章节。

### 为什么前端框架选择 Vuetify

在本项目建设初期,选择 Vuetify 作为前端组件,主要原因就是其是 Material 样式的UI组件以及更新频率较高、维护的持续性较好。经过几年的使用,发现该套组件库封装度很高,组件的属性配置丰富、使用灵活、可定制性强、学习使用曲线低。

特别是 Vuetify 对常见的样式使用和布局处理进行了深度封装,不需在样式和布局设计上投入大量精力,通过简单的属性配置就可以做出比较好看的界面。这一点对不擅长前端和美工设计、想快速实现前端的后端人员非常友好。

在进行 Vue3 版本开发之前,也对 Element Plus、Naive UI 等组件库进行了对比,也基于评分较高的开源后台模版进行了尝试性开发。发现大多数组件库相比 Vuetify,组件配置属性都少了很多,没有Vuetify灵活,而且都需要自己编写大量的样式,甚至需要自己实现常规组件。因此,新版本前端最终仍旧选择使用 Vuetify。

## 重要信息

Expand Down Expand Up @@ -121,12 +135,12 @@ Eurynome Cloud是一款企业级微服务架构和服务能力开发平台。基

| 组件 | 版本 |
|-----------------------------|------------|
| Spring Boot | 2.6.6 |
| Spring Boot | 2.7.0 |
| Spring Cloud | 2021.0.2 |
| Spring Cloud Alibaba | 2021.0.1.0 |
| Spring Authorization Server | 0.2.3 |
| Spring Boot Admin | 2.6.5 |
| Nacos | 2.0.4 |
| Spring Boot Admin | 2.6.7 |
| Nacos | 2.1.0 |
| Sentinel | 1.8.3 |
| Seata | 1.3.0 |

Expand Down Expand Up @@ -234,6 +248,10 @@ eurynome-cloud

## [10]、鸣谢

- [Soybean Admin](https://gitee.com/honghuangdc/soybean-admin)
- [Vue Next Admin](https://gitee.com/lyt-top/vue-next-admin)
- [Vue VBen Admin](https://gitee.com/annsion/vue-vben-admin)

- 感谢 JetBrains 提供的免费开源 License:

![https://jb.gg/OpenSourceSupport](./readme/jb_beam.svg)
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=2.7.0.RC1
VERSION=2.7.0.0
GATEWAY_SERVICE_NAME=eurynome-cloud-gateway
GATEWAY_SERVICE_PORT=8847
UAA_SERVICE_NAME=eurynome-cloud-uaa
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION=2.7.0.RC1
VERSION=2.7.0.0
GATEWAY_SERVICE_NAME=eurynome-cloud-gateway
GATEWAY_SERVICE_PORT=8847
UAA_SERVICE_NAME=eurynome-cloud-uaa
Expand Down
4 changes: 2 additions & 2 deletions dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@
<parent>
<groupId>cn.herodotus.engine</groupId>
<artifactId>dependencies</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<relativePath/>
</parent>

<groupId>cn.herodotus.eurynome</groupId>
<artifactId>dependencies</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>pom</packaging>

<name>eurynome-cloud-dependencies</name>
Expand Down
4 changes: 2 additions & 2 deletions modules/eurynome-module-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
<parent>
<artifactId>modules</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-module-common</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions modules/eurynome-module-security/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
<parent>
<artifactId>modules</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-module-security</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions modules/eurynome-module-upms-logic/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
<parent>
<artifactId>modules</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-module-upms-logic</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions modules/eurynome-module-upms-rest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
<parent>
<artifactId>modules</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-module-upms-rest</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions modules/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
<parent>
<artifactId>eurynome-cloud</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>modules</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>pom</packaging>

<name>eurynome-cloud-modules</name>
Expand Down
4 changes: 2 additions & 2 deletions packages/authentication-spring-boot-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
<parent>
<artifactId>packages</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>authentication-spring-boot-starter</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions packages/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
<parent>
<artifactId>eurynome-cloud</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>packages</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>pom</packaging>

<name>eurynome-cloud-packages</name>
Expand Down
4 changes: 2 additions & 2 deletions packages/service-spring-boot-starter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@
<parent>
<artifactId>packages</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>service-spring-boot-starter</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions platform/eurynome-cloud-gateway/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
<parent>
<artifactId>platform</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-cloud-gateway</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions platform/eurynome-cloud-monitor/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<parent>
<artifactId>platform</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-cloud-monitor</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<name>eurynome-cloud-monitor</name>
<description>eurynome-cloud-monitor</description>
<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ spring:
profiles:
active: @profile.name@
cloud:
httpclientfactories:
ok:
enabled: false
nacos:
config:
namespace: @config.namespace@
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ spring:
thymeleaf:
mode: HTML
cache: false
cloud:
httpclientfactories:
ok:
enabled: false

springdoc:
api-docs:
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 2 additions & 2 deletions platform/eurynome-cloud-uaa/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@
<parent>
<artifactId>platform</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>eurynome-cloud-uaa</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
<packaging>jar</packaging>

<dependencies>
Expand Down
4 changes: 2 additions & 2 deletions platform/eurynome-cloud-upms/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
<parent>
<artifactId>platform</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>eurynome-cloud-upms</artifactId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>

<dependencies>
<dependency>
Expand Down
2 changes: 1 addition & 1 deletion platform/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<parent>
<artifactId>eurynome-cloud</artifactId>
<groupId>cn.herodotus.eurynome</groupId>
<version>2.7.0.RC1</version>
<version>2.7.0.0</version>
</parent>

<artifactId>platform</artifactId>
Expand Down
Loading

0 comments on commit 4ca351f

Please sign in to comment.