diff --git a/README.md b/README.md index 8fcb3b42..f7b8cf47 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ License -Release +Release Release @@ -15,11 +15,11 @@ Sonar Status - -Spring Boot + +Spring Boot -Java +Open JDK GitHub stars @@ -164,23 +164,24 @@ continew-starter.web: ## 模块结构 -| 模块名称 | 模块说明 | 依赖版本 | -| ---------------------------------- | --------------------------------------------------- | ------------------------------------------------------------ | -| continew-starter-core | 核心模块:包含线程池等自动配置 | Spring Boot:3.1.7
Hutool:5.8.24
mica-ip2region:3.1.6 | -| continew-starter-json-jackson | JSON 模块:Jackson 自动配置 | Jackson:2.15.3 | -| continew-starter-api-doc | API 文档模块:Knife4j 自动配置 | Knife4j:4.4.0 | -| continew-starter-web | Web 模块:跨域、全局异常、错误处理等自动配置 | Undertow:2.3.10.Final
| +| 模块名称 | 模块说明 | 依赖版本 | +|------------------------------------|-------------------------------------------| ------------------------------------------------------------ | +| continew-starter-core | 核心模块:包含线程池等自动配置 | Spring Boot:3.1.7
Hutool:5.8.24
mica-ip2region:3.1.6 | +| continew-starter-json-jackson | JSON 模块:Jackson 自动配置 | Jackson:2.15.3 | +| continew-starter-api-doc | API 文档模块:Knife4j 自动配置 | Knife4j:4.4.0 | +| continew-starter-security | 安全模块:密码编码器、数据库字段加密、JSON 脱敏等 | | +| continew-starter-web | Web 模块:跨域、全局异常、错误处理等自动配置 | Undertow:2.3.10.Final
| | continew-starter-log-httptrace-pro | 日志模块:Spring Boot Actuator HttpTrace 重置增强版 | | -| continew-starter-storage-local | 存储模块:本地存储 | | -| continew-starter-file-excel | 文件处理模块:Excel 相关配置 | Easy Excel:3.3.4 | -| continew-starter-captcha-graphic | 验证码模块:图形验证码 | Easy Captcha:1.6.2 | -| continew-starter-captcha-behavior | 验证码模块:行为验证码 | AJ-Captcha:1.3.0 | -| continew-starter-cache-redisson | 缓存模块:Redisson 自动配置 | Redisson:3.25.2 | -| continew-starter-data-mybatis-plus | 数据访问模块:MyBatis Plus 自动配置 | MyBatis Plus:3.5.5
dynamic-datasource-spring-boot-starter:4.2.0
P6Spy:3.9.1 | -| continew-starter-auth-satoken | 认证模块:SaToken 自动配置 | Sa-Token:1.37.0 | -| continew-starter-auth-justauth | 认证模块:JustAuth 自动配置 | Just Auth:1.16.6 | -| continew-starter-messaging-mail | 消息模块:邮件 | Jakarta Mail:1.1.0 | -| continew-starter-messaging-sms | 消息模块:短信 | SMS4J:3.0.4 | +| continew-starter-storage-local | 存储模块:本地存储 | | +| continew-starter-file-excel | 文件处理模块:Excel 相关配置 | Easy Excel:3.3.4 | +| continew-starter-captcha-graphic | 验证码模块:图形验证码 | Easy Captcha:1.6.2 | +| continew-starter-captcha-behavior | 验证码模块:行为验证码 | AJ-Captcha:1.3.0 | +| continew-starter-cache-redisson | 缓存模块:Redisson 自动配置 | Redisson:3.25.2 | +| continew-starter-data-mybatis-plus | 数据访问模块:MyBatis Plus 自动配置 | MyBatis Plus:3.5.5
dynamic-datasource-spring-boot-starter:4.2.0
P6Spy:3.9.1 | +| continew-starter-auth-satoken | 认证模块:SaToken 自动配置 | Sa-Token:1.37.0 | +| continew-starter-auth-justauth | 认证模块:JustAuth 自动配置 | Just Auth:1.16.6 | +| continew-starter-messaging-mail | 消息模块:邮件 | Jakarta Mail:1.1.0 | +| continew-starter-messaging-sms | 消息模块:短信 | SMS4J:3.0.4 | | continew-starter-extension-crud | 扩展模块:BaseController 自定义 CRUD API 封装 | | ## 贡献代码 diff --git a/continew-starter-core/pom.xml b/continew-starter-core/pom.xml index bd7f9f31..73bbd303 100644 --- a/continew-starter-core/pom.xml +++ b/continew-starter-core/pom.xml @@ -58,11 +58,5 @@ cn.hutool hutool-db - - - - org.springframework.security - spring-security-crypto - \ No newline at end of file diff --git a/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 3aa91b9d..c64a3c92 100644 --- a/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/continew-starter-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,4 +1,3 @@ top.charles7c.continew.starter.core.autoconfigure.project.ProjectAutoConfiguration top.charles7c.continew.starter.core.autoconfigure.threadpool.ThreadPoolAutoConfiguration -top.charles7c.continew.starter.core.autoconfigure.threadpool.AsyncAutoConfiguration -top.charles7c.continew.starter.core.autoconfigure.password.PasswordEncoderAutoConfiguration \ No newline at end of file +top.charles7c.continew.starter.core.autoconfigure.threadpool.AsyncAutoConfiguration \ No newline at end of file diff --git a/continew-starter-dependencies/pom.xml b/continew-starter-dependencies/pom.xml index 0da67d5b..a1426fb8 100644 --- a/continew-starter-dependencies/pom.xml +++ b/continew-starter-dependencies/pom.xml @@ -375,6 +375,20 @@ ${revision} + + + top.charles7c.continew + continew-starter-web + ${revision} + + + + + top.charles7c.continew + continew-starter-security-password + ${revision} + + top.charles7c.continew @@ -389,13 +403,6 @@ ${revision} - - - top.charles7c.continew - continew-starter-web - ${revision} - - top.charles7c.continew diff --git a/continew-starter-security/continew-starter-security-password/pom.xml b/continew-starter-security/continew-starter-security-password/pom.xml new file mode 100644 index 00000000..5591cf1c --- /dev/null +++ b/continew-starter-security/continew-starter-security-password/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + top.charles7c.continew + continew-starter-security + ${revision} + + + continew-starter-security-password + ContiNew Starter 安全模块 - 密码编码器 + + + + + org.springframework.security + spring-security-crypto + + + \ No newline at end of file diff --git a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderAutoConfiguration.java b/continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java similarity index 70% rename from continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderAutoConfiguration.java rename to continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java index 68f5e602..c9c28cae 100644 --- a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderAutoConfiguration.java +++ b/continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java @@ -14,9 +14,10 @@ * limitations under the License. */ -package top.charles7c.continew.starter.core.autoconfigure.password; +package top.charles7c.continew.starter.security.password.autoconfigure; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import jakarta.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,6 +48,7 @@ import java.util.Map; *

* * @author Jasmine + * @author Charles7c * @since 1.3.0 */ @AutoConfiguration @@ -71,25 +73,15 @@ public class PasswordEncoderAutoConfiguration { public PasswordEncoder passwordEncoder(List passwordEncoderList) { Map encoders = new HashMap<>(); encoders.put("bcrypt", new BCryptPasswordEncoder()); - encoders.put("ldap", new org.springframework.security.crypto.password.LdapShaPasswordEncoder()); - encoders.put("MD4", new org.springframework.security.crypto.password.Md4PasswordEncoder()); - encoders.put("MD5", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("MD5")); - encoders.put("noop", org.springframework.security.crypto.password.NoOpPasswordEncoder.getInstance()); - encoders.put("pbkdf2", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_5()); - encoders.put("pbkdf2@SpringSecurity_v5_8", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8()); - encoders.put("scrypt", SCryptPasswordEncoder.defaultsForSpringSecurity_v4_1()); - encoders.put("scrypt@SpringSecurity_v5_8", SCryptPasswordEncoder.defaultsForSpringSecurity_v5_8()); - encoders.put("SHA-1", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-1")); - encoders - .put("SHA-256", new org.springframework.security.crypto.password.MessageDigestPasswordEncoder("SHA-256")); - encoders.put("sha256", new org.springframework.security.crypto.password.StandardPasswordEncoder()); - encoders.put("argon2", Argon2PasswordEncoder.defaultsForSpringSecurity_v5_2()); - encoders.put("argon2@SpringSecurity_v5_8", Argon2PasswordEncoder.defaultsForSpringSecurity_v5_8()); + encoders.put("pbkdf2", Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8()); + encoders.put("scrypt", SCryptPasswordEncoder.defaultsForSpringSecurity_v5_8()); + encoders.put("argon2", Argon2PasswordEncoder.defaultsForSpringSecurity_v5_8()); // 添加自定义的密码编解码器 if (CollUtil.isNotEmpty(passwordEncoderList)) { - passwordEncoderList.forEach(passwordEncoder -> encoders.put(passwordEncoder.getClass() - .getSimpleName() - .toLowerCase(), passwordEncoder)); + passwordEncoderList.forEach(passwordEncoder -> { + String simpleName = passwordEncoder.getClass().getSimpleName(); + encoders.put(StrUtil.removeSuffix(simpleName, "PasswordEncoder").toLowerCase(), passwordEncoder); + }); } String encodingId = properties.getEncodingId(); CheckUtils.throwIf(!encoders.containsKey(encodingId), "{} is not found in idToPasswordEncoder.", encodingId); @@ -98,6 +90,6 @@ public class PasswordEncoderAutoConfiguration { @PostConstruct public void postConstruct() { - log.debug("[ContiNew Starter] - Auto Configuration 'PasswordEncoder' completed initialization."); + log.debug("[ContiNew Starter] - Auto Configuration 'Security-PasswordEncoder' completed initialization."); } } diff --git a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderProperties.java b/continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderProperties.java similarity index 95% rename from continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderProperties.java rename to continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderProperties.java index 27211ecc..930a7fbd 100644 --- a/continew-starter-core/src/main/java/top/charles7c/continew/starter/core/autoconfigure/password/PasswordEncoderProperties.java +++ b/continew-starter-security/continew-starter-security-password/src/main/java/top/charles7c/continew/starter/security/password/autoconfigure/PasswordEncoderProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.starter.core.autoconfigure.password; +package top.charles7c.continew.starter.security.password.autoconfigure; import org.springframework.boot.context.properties.ConfigurationProperties; import top.charles7c.continew.starter.core.constant.PropertiesConstants; diff --git a/continew-starter-security/continew-starter-security-password/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/continew-starter-security/continew-starter-security-password/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000..2923ec65 --- /dev/null +++ b/continew-starter-security/continew-starter-security-password/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +top.charles7c.continew.starter.security.password.autoconfigure.PasswordEncoderAutoConfiguration \ No newline at end of file diff --git a/continew-starter-security/pom.xml b/continew-starter-security/pom.xml new file mode 100644 index 00000000..929cd151 --- /dev/null +++ b/continew-starter-security/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + top.charles7c.continew + continew-starter + ${revision} + + + continew-starter-security + pom + ContiNew Starter 安全模块 + + + continew-starter-security-password + + + + + + top.charles7c.continew + continew-starter-core + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index dd0b57a6..f6852511 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,7 @@ continew-starter-core continew-starter-json continew-starter-api-doc + continew-starter-security continew-starter-web continew-starter-log continew-starter-storage