springboot脫敏控件升級(jí)支持深度脫敏
正文
secure-ext-spring-boot-starter自發(fā)布以來受到廣大童鞋的關(guān)注,也收到各位同行朋友好的建議與需求,主要是常規(guī)情況下我們可能根據(jù)各自項(xiàng)目需求,列表頁(yè)會(huì)返回Page對(duì)象,Page中包含records(List類型),records又包含實(shí)際的Entity,因此大多數(shù)情況下返回的會(huì)是復(fù)雜對(duì)象。
因此經(jīng)過幾天的優(yōu)化調(diào)整,重新發(fā)布升級(jí)版,本次主要升級(jí)內(nèi)容:
1. 支持自動(dòng)化配置;
2. 支持深度脫敏,支持復(fù)雜對(duì)象,嵌套對(duì)象,對(duì)象內(nèi)多層級(jí)嵌套,自動(dòng)尋找返回值中嵌套對(duì)象包含的需脫敏的屬性;
最新版本
最新發(fā)布版已更新到mave中央倉(cāng)庫(kù):[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è)以英文逗號(hào)分隔 |
深度脫敏規(guī)則:
depth為true,且packages不為空,當(dāng)方法返回值嵌套的屬性包含在packages下,則自動(dòng)進(jìn)行脫敏。
示例
代碼略長(zhǎng),大致如下:方法返回Page,Page中的Records為L(zhǎng)ist,List中存放實(shí)體類SensitiveEntity,SensitiveEntity又包含List<SensitiveSubEntity> SubEntities,SensitiveSubEntity中又包含了SensitiveGrandSonEntity,基本可以滿足我們大多數(shù)場(chǎng)景。
@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脫敏控件升級(jí)支持深度脫敏的詳細(xì)內(nèi)容,更多關(guān)于springboot脫敏控件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 升級(jí)springboot3.x踩坑記錄
- SpringBoot升級(jí)3.2報(bào)錯(cuò)Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String的解決方案
- SpringBoot版本升級(jí)容易遇到的一些問題
- Springboot項(xiàng)目升級(jí)2.2.x升至2.7.x的示例代碼
- springboot將mybatis升級(jí)為mybatis-plus的實(shí)現(xiàn)
- SpringBoot Maven升級(jí)自帶的jar包版本問題
- SpringBoot2.6.x升級(jí)后循環(huán)依賴及Swagger無法使用問題
- SpringBoot3.3.0升級(jí)方案
相關(guān)文章
Java使用DFA算法實(shí)現(xiàn)過濾多家公司自定義敏感字功能詳解
這篇文章主要介紹了Java使用DFA算法實(shí)現(xiàn)過濾多家公司自定義敏感字功能,結(jié)合實(shí)例形式分析了DFA算法的實(shí)現(xiàn)原理及過濾敏感字的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08JetBrains?產(chǎn)品輸入激活碼?Key?is?invalid?完美解決方案
JetBrains?系列產(chǎn)品(IDEA、Pycharm?等)使用本站破解教程?(opens?new?window),在輸入激活碼時(shí),部分小伙伴反應(yīng)說提示?Key?is?invalid?無法激活,今天小編給大家分享完美解決方案,感興趣的朋友跟隨小編一起看看吧2022-11-11Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12使用hibernate和struts2實(shí)現(xiàn)分頁(yè)功能的示例
本篇文章主要介紹了使用hibernate和struts2實(shí)現(xiàn)分頁(yè)功能,小編覺得挺不錯(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à)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10