Rpamis-security-基于Mybatis-Plugin的一站式加解密脱敏安全组件

2023-11-25 10:35:09 浏览数 (2)

# 介绍

rpamis-security (opens new window)1.0.0是一个基于Mybatis插件开发的安全组件,旨在提供更优于市面上组件的脱敏、加解密落库等企业数据安全解决方案。组件提供注解式编程方式,开发者只需要对需要处理的字段或方法加上对应注解,无需关心安全相关需求,由组件全自动完成脱敏、加解密等功能

SpringBoot项目接入方式

代码语言:javascript复制
<dependency>
    <groupId>com.rpamis</groupId>
    <artifactId>rpamis-security-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

yml配置

代码语言:javascript复制
rpamis:
  # rpamis-security配置
  security:
    # 是否开启安全组件,落库加密,出库脱密,如果不指定加密算法,则默认返回原值
    # 当此开关为false时,无论脱敏切面是否开启,均不生效
    enable: true
    # 加密算法类型,内置sm4,可自行扩展
    algorithm: sm4
    # 加密算法密钥,需要自己生成,满足16位即可,下面只是样例
    sm4key: 2U43wVWjLgToKBzG
    # 忽略解密失败,如果解密失败则返回原值,否则抛出异常,如果不填写默认true
    ignore-decrypt-failed: true
    # 是否开启脱敏切面
    desensitization-enable: true

组件特点

rpamis-security

组件优势

同类项目

支持任意实体类型脱敏

✅自定义实体、List、Map,无论是否具有实体泛型,只要返回值中含有脱敏注解,均支持脱敏,非JackSon序列化式方案,不影响全局JackSon输出行为

❌仅支持单一实体脱敏,当不指定泛型时无法脱敏,Jackson序列化式方案,可能影响JackSon输出行为

支持任意实体类型嵌套脱敏

✅对于标注有嵌套脱敏注解的实体,其内部自定义实体、List、Map,无论是否具有实体泛型,只要返回值中含有脱敏注解,均支持脱敏

❌不支持嵌套脱敏

支持任意实体类型落库数据自动加解密

✅对于任意标注有加密字段的实体,在进入Mybatis/MybatisPlus落库时自动进行加密,在数据出库时自动进行解密,支持动态SQL加解密

❌仅支持单一实体自动加解密,无法支持List、Map内含多实体自动加解密,无法支持动态SQL加解密

支持国家标准加密算法Sm4

支持国密Sm4对称加密算法,支持扩展

sm2/sm3/sm4/md5等多种算法

脱敏、加解密多项选择可配置

✅支持脱敏、加解密开关、支持加解密失败0影响

❌不支持

新增入库后不改变源对象引用

✅支持,加解密过程为深拷贝,支持save操作后继续操作对象,且对象引用不被加密

❌不支持

新增后,如果修改同一个对象引用,再进行更新,能够正常加密

支持

支持

可拓展式加密算法、加解密类型处理器、脱敏类型处理器

✅支持

❌不支持

自定义脱敏标识,起始位置,结束位置

✅支持

❌不支持

完整的单测用例

✅给出完整的单测用例,单测覆盖率达80%(含get/set)

❌无

# 代码及单测覆盖率

Rpamis-security

0 人点赞