starter
Security Starter
under-utils-security-starter
按显式配置创建 FieldEncryptor,并注册 MyBatis 加密 TypeHandler 默认加密器。
依赖
<dependency>
<groupId>io.github.yexianglun-d</groupId>
<artifactId>under-utils-security-starter</artifactId>
<version>1.0.4</version>
</dependency> 适用场景
希望通过 Spring Boot 配置接入字段加密的项目。
能力边界
| 文档来源 | under-utils-security-starter/README.md |
|---|---|
| API 入口 | 查看 Security Starter 相关 API |
| 设计约束 | 保留失败语义、配置 key 和 public API 兼容性说明,不以营销描述替代真实边界。 |
不做隐式全局加密 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
用户 Bean 自动退让 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
Base64 AES key 显式启用 该能力来自当前模块 README 或 API Review,页面下方同步展示原始 README 内容。
README 同步内容
来源:under-utils-security-starter/README.md,构建时自动读取并渲染。
Spring Boot 自动装配模块,用于按配置创建字段级加密器,并把它注册为 EncryptedStringTypeHandler 的默认加密器。
依赖
<dependency>
<groupId>io.github.yexianglun-d</groupId>
<artifactId>under-utils-security-starter</artifactId>
<version>1.0.4</version>
</dependency>
配置
under:
utils:
security:
enabled: true
field-encryption:
enabled: true
key-id: k1
key: ${UNDER_UTILS_FIELD_AES_KEY_BASE64}
register-mybatis-type-handler: true
key 必须是 Base64 编码的 AES key,解码后长度必须为 16、24 或 32 字节。未配置 key 或设置 field-encryption.enabled=false 时不会创建默认 FieldEncryptor,也不会注册 EncryptedStringTypeHandler 默认加密器。
MyBatis 用法
@TableName(value = "sys_user", autoResultMap = true)
public class SysUser {
@TableField(value = "mobile", typeHandler = EncryptedStringTypeHandler.class)
private String mobile;
}
本 starter 不会自动扫描实体字段,也不会全局加密所有字符串字段。字段必须显式声明 TypeHandler。