diff --git a/README.md b/README.md index 0bdf0f6e..2dd8dcda 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Release -ContiNew Starter +ContiNew Starter Spring Boot @@ -44,9 +44,14 @@ **AI 编程纪元已经开启,基于 ContiNew 项目开发,让 AI 助手“学习”更优雅的代码规范,“写出”更优质的代码。** -ContiNew Admin(Continue New Admin):持续迭代优化的,前后端分离,多租户中后台管理系统框架。开箱即用,重视每一处代码规范,重视每一种解决方案细节,持续提供舒适的前、后端开发体验。 +ContiNew Admin(Continue New Admin),页面现代美观,且专注设计与代码细节的 **高质量多租户中后台** 管理系统框架。开箱即用,持续迭代优化,持续提供舒适的开发体验。 + +当前采用的技术栈:Spring Boot3(Java17)、Vue3 & Arco Design & TS & Vite、Sa-Token、MyBatis Plus、Redisson、FastExcel、CosId、JetCache、JustAuth、Crane4j、Spring Doc、Hutool 等。 + +我们始终坚信好的产品必然是反复打磨出来的,而在工作中我们受限于客户需求、开发周期等因素,无法深度打磨、重构我们的代码,这也是架构腐烂的根源。所以,我们希望能在业余时间,通过开源社区的力量来打磨出一个好的产品,一个好的实践,一个好的生态。 + +我们的愿景在于,当你将 ContiNew 系列项目应用到工作场景时,不仅仅是得到效率的提高,更可以得到舒适的开发体验,让更多开发者的编程工作多一点“甜”。 -当前采用的技术栈:Spring Boot3(Java17)、Vue3 & Arco Design & TS & Vite、Sa-Token、MyBatis Plus、FastExcel、Redisson、JetCache、JustAuth、Crane4j、Hutool、Liquibase 等。 ## 项目源码 @@ -226,7 +231,7 @@ public class DeptController extends BaseControllerArco Design | 2.57.0 | 字节跳动推出的前端 UI 框架,年轻化的色彩和组件设计。 | | TypeScript | 5.0.4 | TypeScript 是微软开发的一个开源的编程语言,通过在 JavaScript 的基础上添加静态类型定义构建而成。 | | Vite | 5.1.5 | 下一代的前端工具链,为开发提供极速响应。 | -| [ContiNew Starter](https://github.com/continew-org/continew-starter) | 2.13.2 | ContiNew Starter 包含了一系列经过企业实践优化的依赖包(如 MyBatis-Plus、SaToken),可轻松集成到应用中,为开发人员减少手动引入依赖及配置的麻烦,为 Spring Boot Web 项目的灵活快速构建提供支持。 | +| [ContiNew Starter](https://github.com/continew-org/continew-starter) | 2.13.3 | ContiNew Starter 包含了一系列经过企业实践优化的依赖包(如 MyBatis-Plus、SaToken),可轻松集成到应用中,为开发人员减少手动引入依赖及配置的麻烦,为 Spring Boot Web 项目的灵活快速构建提供支持。 | | Spring Boot | 3.3.12 | 简化 Spring 应用的初始搭建和开发过程,基于“约定优于配置”的理念,使开发人员不再需要定义样板化的配置。(Spring Boot 3.0 开始,要求 Java 17 作为最低版本) | | Undertow | 2.3.18.Final | 采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。 | | Sa-Token + JWT | 1.44.0 | 轻量级 Java 权限认证框架,让鉴权变得简单、优雅。 | diff --git a/continew-common/src/main/java/top/continew/admin/common/config/mybatis/BCryptEncryptor.java b/continew-common/src/main/java/top/continew/admin/common/config/mybatis/BCryptEncryptor.java deleted file mode 100644 index 40333c42..00000000 --- a/continew-common/src/main/java/top/continew/admin/common/config/mybatis/BCryptEncryptor.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * 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. - */ - -package top.continew.admin.common.config.mybatis; - -import org.springframework.security.crypto.password.PasswordEncoder; -import top.continew.starter.security.crypto.encryptor.AbstractEncryptor; -import top.continew.starter.security.crypto.encryptor.CryptoContext; -import top.continew.starter.security.password.constant.PasswordEncoderConstants; - -/** - * BCrypt 加/解密处理器(不可逆) - * - * @author Charles7c - * @since 2024/2/8 22:29 - */ -public class BCryptEncryptor extends AbstractEncryptor { - - private final PasswordEncoder passwordEncoder; - - public BCryptEncryptor(CryptoContext context, PasswordEncoder passwordEncoder) { - super(context); - this.passwordEncoder = passwordEncoder; - } - - @Override - public String encrypt(String plaintext) { - // 如果已经是 BCrypt 加密格式,直接返回 - if (PasswordEncoderConstants.BCRYPT_PATTERN.matcher(plaintext).matches()) { - return plaintext; - } - return passwordEncoder.encode(plaintext); - } - - @Override - public String decrypt(String ciphertext) { - return ciphertext; - } -} diff --git a/continew-common/src/main/java/top/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java b/continew-common/src/main/java/top/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java index fa37bfda..5782311f 100644 --- a/continew-common/src/main/java/top/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java +++ b/continew-common/src/main/java/top/continew/admin/common/config/mybatis/MybatisPlusConfiguration.java @@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.extension.parser.JsqlParserGlobal; import com.baomidou.mybatisplus.extension.parser.cache.JdkSerialCaffeineJsqlParseCache; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.crypto.password.PasswordEncoder; import top.continew.starter.extension.datapermission.provider.DataPermissionUserDataProvider; import java.util.concurrent.TimeUnit; @@ -56,12 +55,4 @@ public class MybatisPlusConfiguration { public DataPermissionUserDataProvider dataPermissionUserDataProvider() { return new DefaultDataPermissionUserDataProvider(); } - - /** - * BCrypt 加/解密处理器 - */ - @Bean - public BCryptEncryptor bCryptEncryptor(PasswordEncoder passwordEncoder) { - return new BCryptEncryptor(null, passwordEncoder); - } } diff --git a/continew-server/src/main/resources/config/application.yml b/continew-server/src/main/resources/config/application.yml index 25cb4173..760566bd 100644 --- a/continew-server/src/main/resources/config/application.yml +++ b/continew-server/src/main/resources/config/application.yml @@ -7,7 +7,7 @@ application: description: 持续迭代优化的前后端分离中后台管理系统框架,开箱即用,持续提供舒适的开发体验。 # 版本 version: 4.0.0-SNAPSHOT - starter: 2.13.2 + starter: 2.13.3 # 基本包 base-package: top.continew.admin ## 作者信息配置 @@ -186,8 +186,8 @@ continew-starter.trace: continew-starter.security: password: enabled: true - # BCryptPasswordEncoder(如有改动,需同步调整 top.continew.admin.common.config.mybatis.BCryptEncryptor) - encoding-id: bcrypt + # 默认启用的编码器算法(默认:BCrypt 加密算法) + algorithm: BCRYPT --- ### CRUD 配置 continew-starter.crud: diff --git a/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserDO.java b/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserDO.java index 1b3ab65f..5b074d5d 100644 --- a/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserDO.java +++ b/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserDO.java @@ -21,11 +21,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import top.continew.admin.common.base.model.entity.TenantBaseDO; -import top.continew.admin.common.config.mybatis.BCryptEncryptor; import top.continew.admin.common.enums.DisEnableStatusEnum; import top.continew.admin.common.enums.GenderEnum; import top.continew.starter.extension.crud.annotation.DictModel; import top.continew.starter.security.crypto.annotation.FieldEncrypt; +import top.continew.starter.security.crypto.enums.Algorithm; import java.io.Serial; import java.time.LocalDateTime; @@ -57,7 +57,7 @@ public class UserDO extends TenantBaseDO { /** * 密码 */ - @FieldEncrypt(encryptor = BCryptEncryptor.class) + @FieldEncrypt(Algorithm.PASSWORD_ENCODER) private String password; /** diff --git a/continew-system/src/main/java/top/continew/admin/system/model/resp/DeptResp.java b/continew-system/src/main/java/top/continew/admin/system/model/resp/DeptResp.java index f6871036..f00ffefa 100644 --- a/continew-system/src/main/java/top/continew/admin/system/model/resp/DeptResp.java +++ b/continew-system/src/main/java/top/continew/admin/system/model/resp/DeptResp.java @@ -83,10 +83,4 @@ public class DeptResp extends BaseDetailResp { @Schema(description = "描述", example = "测试部描述信息") @ExcelProperty(value = "描述", order = 8) private String description; - - // TODO 临时修复,等待 ContiNew Starter 2.13.3 发布移除 - @Override - public Long getId() { - return super.getId(); - } } diff --git a/continew-system/src/main/java/top/continew/admin/system/model/resp/MenuResp.java b/continew-system/src/main/java/top/continew/admin/system/model/resp/MenuResp.java index d45ee6e0..1ab8e1c7 100644 --- a/continew-system/src/main/java/top/continew/admin/system/model/resp/MenuResp.java +++ b/continew-system/src/main/java/top/continew/admin/system/model/resp/MenuResp.java @@ -122,10 +122,4 @@ public class MenuResp extends BaseResp { */ @Schema(description = "状态", example = "1") private DisEnableStatusEnum status; - - // TODO 临时修复,等待 ContiNew Starter 2.13.3 发布移除 - @Override - public Long getId() { - return super.getId(); - } } diff --git a/continew-system/src/main/java/top/continew/admin/system/service/impl/MenuServiceImpl.java b/continew-system/src/main/java/top/continew/admin/system/service/impl/MenuServiceImpl.java index 9212d06e..b61928ad 100644 --- a/continew-system/src/main/java/top/continew/admin/system/service/impl/MenuServiceImpl.java +++ b/continew-system/src/main/java/top/continew/admin/system/service/impl/MenuServiceImpl.java @@ -18,6 +18,7 @@ package top.continew.admin.system.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.StrUtil; import com.alicp.jetcache.anno.Cached; import jakarta.annotation.Resource; @@ -42,6 +43,7 @@ import top.continew.starter.cache.redisson.util.RedisUtils; import top.continew.starter.core.constant.StringConstants; import top.continew.starter.core.util.CollUtils; import top.continew.starter.core.util.validation.CheckUtils; +import top.continew.starter.extension.crud.model.query.SortQuery; import java.util.List; import java.util.Set; @@ -60,6 +62,11 @@ public class MenuServiceImpl extends BaseServiceImpl> tree(MenuQuery query, SortQuery sortQuery, boolean isSimple) { + return this.tree(query, sortQuery, isSimple, true); + } + @Override public Long create(MenuReq req) { this.checkTitleRepeat(req.getTitle(), req.getParentId(), null); diff --git a/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java b/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java index 1b9268e8..2fcb4fb8 100644 --- a/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java +++ b/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java @@ -85,7 +85,7 @@ import top.continew.starter.core.util.validation.CheckUtils; import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.resp.PageResp; -import top.continew.starter.security.crypto.utils.EncryptHelper; +import top.continew.starter.security.crypto.util.EncryptHelper; import java.io.IOException; import java.time.Duration; diff --git a/pom.xml b/pom.xml index 9dbcc312..61115684 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ top.continew.starter continew-starter - 2.13.2 + 2.13.3 top.continew.admin