springboot脫敏控件升級支持深度脫敏
正文
secure-ext-spring-boot-starter自發(fā)布以來受到廣大童鞋的關(guān)注,也收到各位同行朋友好的建議與需求,主要是常規(guī)情況下我們可能根據(jù)各自項(xiàng)目需求,列表頁會返回Page對象,Page中包含records(List類型),records又包含實(shí)際的Entity,因此大多數(shù)情況下返回的會是復(fù)雜對象。
因此經(jīng)過幾天的優(yōu)化調(diào)整,重新發(fā)布升級版,本次主要升級內(nèi)容:
1. 支持自動(dòng)化配置;
2. 支持深度脫敏,支持復(fù)雜對象,嵌套對象,對象內(nèi)多層級嵌套,自動(dòng)尋找返回值中嵌套對象包含的需脫敏的屬性;
最新版本
最新發(fā)布版已更新到mave中央倉庫:[Maven Central][1.0.3-release]
主要配置
sensitive: enable: true depth: false packages: com.mos.secure
說明:
| 屬性 | 默認(rèn)值 | 取值范圍 | 說明 |
|---|---|---|---|
| enable | true | true/false | 是否啟用脫敏,全局生效,默認(rèn)開啟 |
| depth | false | true/false | 是否啟用深度脫敏,為了性能考慮,默認(rèn)關(guān)閉 |
| packages | 空 | 字符串 | 包路徑,多個(gè)以英文逗號分隔 |
深度脫敏規(guī)則:
depth為true,且packages不為空,當(dāng)方法返回值嵌套的屬性包含在packages下,則自動(dòng)進(jìn)行脫敏。
示例
代碼略長,大致如下:方法返回Page,Page中的Records為List,List中存放實(shí)體類SensitiveEntity,SensitiveEntity又包含List<SensitiveSubEntity> SubEntities,SensitiveSubEntity中又包含了SensitiveGrandSonEntity,基本可以滿足我們大多數(shù)場景。
@Desensitization
public Page page() {
Page page = new Page();
page.setCurrent(1);
page.setSize(10);
List<SensitiveEntity> list = new ArrayList<SensitiveEntity>();
for (int i = 0; i < 5; i++) {
SensitiveEntity sensitiveEntity = createEntity("1" + i, "櫻木花道" + i, "15699996666" + i, "10101020000101000" + i);
list.add(sensitiveEntity);
}
page.setRecords(list);
return page;
}
private static SensitiveEntity createEntity(String i, String i1, String i2, String i3) {
SensitiveEntity sensitiveEntity = new SensitiveEntity();
sensitiveEntity.setId(i);
sensitiveEntity.setName(i1);
sensitiveEntity.setMobile(i2);
sensitiveEntity.setIdCard(i3);
List<SensitiveSubEntity> subEntities = new ArrayList<SensitiveSubEntity>();
for (int j=0;j<3;j++){
SensitiveSubEntity sensitiveSubEntity = new SensitiveSubEntity();
sensitiveSubEntity.setAddress("addr--->"+j);
SensitiveGrandSonEntity grandSonEntity = new SensitiveGrandSonEntity();
grandSonEntity.setEmail("grq100296@163.com");
sensitiveSubEntity.setSensitiveGrandSonEntity(grandSonEntity);
subEntities.add(sensitiveSubEntity);
}
sensitiveEntity.setSubEntities(subEntities);
return sensitiveEntity;
}SensitiveEntity
@Data
public class SensitiveEntity {
private String id;
@DesensitizationProp(value = SensitiveTypeEnum.CUSTOM,preLength = 1,sufLength = 5)
private String name;
@DesensitizationProp(SensitiveTypeEnum.MOBILE_PHONE)
private String mobile;
@DesensitizationProp(SensitiveTypeEnum.ID_CARD)
private String idCard;
private List<SensitiveSubEntity> subEntities;
}SensitiveSubEntity
@Data
public class SensitiveSubEntity {
@DesensitizationProp(SensitiveTypeEnum.ADDRESS)
private String address;
private SensitiveGrandSonEntity sensitiveGrandSonEntity;
}SensitiveGrandSonEntity
@Data
public class SensitiveGrandSonEntity {
@DesensitizationProp(value = SensitiveTypeEnum.EMAIL)
private String email;
}
以上就是springboot脫敏控件升級支持深度脫敏的詳細(xì)內(nèi)容,更多關(guān)于springboot脫敏控件的資料請關(guān)注腳本之家其它相關(guān)文章!
- 升級springboot3.x踩坑記錄
- SpringBoot升級3.2報(bào)錯(cuò)Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案
- SpringBoot版本升級容易遇到的一些問題
- Springboot項(xiàng)目升級2.2.x升至2.7.x的示例代碼
- springboot將mybatis升級為mybatis-plus的實(shí)現(xiàn)
- SpringBoot Maven升級自帶的jar包版本問題
- SpringBoot2.6.x升級后循環(huán)依賴及Swagger無法使用問題
- SpringBoot3.3.0升級方案
相關(guān)文章
Java使用DFA算法實(shí)現(xiàn)過濾多家公司自定義敏感字功能詳解
這篇文章主要介紹了Java使用DFA算法實(shí)現(xiàn)過濾多家公司自定義敏感字功能,結(jié)合實(shí)例形式分析了DFA算法的實(shí)現(xiàn)原理及過濾敏感字的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
JetBrains?產(chǎn)品輸入激活碼?Key?is?invalid?完美解決方案
JetBrains?系列產(chǎn)品(IDEA、Pycharm?等)使用本站破解教程?(opens?new?window),在輸入激活碼時(shí),部分小伙伴反應(yīng)說提示?Key?is?invalid?無法激活,今天小編給大家分享完美解決方案,感興趣的朋友跟隨小編一起看看吧2022-11-11
Springboot簡單熱部署實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Springboot簡單熱部署實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
使用hibernate和struts2實(shí)現(xiàn)分頁功能的示例
本篇文章主要介紹了使用hibernate和struts2實(shí)現(xiàn)分頁功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
解決websocket 報(bào) Could not decode a text frame as UTF-8錯(cuò)誤
這篇文章主要介紹了解決websocket 報(bào) Could not decode a text frame as UTF-8錯(cuò)誤,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10

