# sensitive-spring-boot-start **Repository Path**: null-0-null/sensitive-spring-boot-start ## Basic Information - **Project Name**: sensitive-spring-boot-start - **Description**: 在项目中我们经常会遇到一些脱敏的情况,比如针对手机号、身份证号等等。该starter是基于 spring aop 来实现的一个脱敏的插件。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-07-24 - **Last Updated**: 2024-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sensitive-spring-boot-start # 介绍 在项目中我们经常会遇到一些脱敏的情况,比如针对手机号、身份证号等等。该starter是基于 spring aop 来实现的一个脱敏的插件。 默认支持的脱敏策略如下 | 脱敏策略 | 说明 | |---|---| | USER_NAME | 用户名脱敏 用户名保留第一个长度,其它变为星号 如:张** | | ID_CARD | 身份证脱敏 身份证号保留后四位 如:**************6328 | | PHONE | 手机号脱敏 手机号码保留 前三位,后四位 如:156****3369 | | EMAIL | 邮箱脱敏 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示 如:1*********@qq.com | | BANK_CARD | 银行卡号脱敏 银行卡号 保留前六位,后四位 如:111122********3333 | | EN_CREPT | 加密解密模式。这种模式一般应用于这种场景:针对有些字段前端需要脱敏展示,但是又需要将该字段作为参数提交给后端。所以针对此种场景做了加密解密模式。它的工作模式是:给前端返回结果时,对内容加密,加密后有个`$$SENSITIVE$$`前缀,前端可以根据这个前缀展示时将其展示为 `***` ,但是当其提交时,提交的是加密后的字符串,后端接收到会再做一次解密 | # 安装教程 ``` io.gitee.xinsuinian sensitive-spring-boot-start 1.0.0 ``` # 使用说明 ## 简单实用 启动类加上扫描包 ```@SpringBootApplication(scanBasePackages = {"com.lwq.*"})``` 在需要脱敏的字段上使用 `@SensitiveFiled` 注解,也可以指定脱敏策略如下图所示 ![指定需要脱敏的字段](https://images.gitee.com/uploads/images/2021/0904/212033_b5bc8abe_695155.png "屏幕截图.png") 在对应的controller 层加上 `@SensitiveEnable` 注解,如下图所示 ![启用脱敏](https://images.gitee.com/uploads/images/2021/0904/211756_ac01ff29_695155.png "屏幕截图.png") 结果如下 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0904/212952_91655e9b_695155.png "屏幕截图.png") ## 权限控制 有些时候可能是根据用户的权限判断是否有权限脱敏,针对这种情况可以使用如下方式 在方法是使用注解时指定 `enablePermissionSupport` 为true ``` @SensitiveEnable(enablePermissionSupport = true) ``` ![示例](https://images.gitee.com/uploads/images/2021/0906/210313_33f9c50b_695155.png "屏幕截图.png") 同时实现 `PermissionSupport` 这个接口,并注入到容器中如下 ![权限支持](https://images.gitee.com/uploads/images/2021/0906/210224_51d184c2_695155.png "屏幕截图.png") 如上所示,默认的 `PermissionSupport` 这个实现类的名称为 `PermissionSupportImpl`当需要制定bean的名称时,可以使用如下方式制定类名称 `@SensitiveEnable(enablePermissionSupport = true, permissionSupportBeanName = "permissionSupportImpl2")` ![示例](https://images.gitee.com/uploads/images/2021/0906/214039_2d9371c6_695155.png "屏幕截图.png") ![示例](https://images.gitee.com/uploads/images/2021/0908/220956_8c1bf961_695155.png "屏幕截图.png") # 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request # 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)