国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java 日志脫敏框架 sensitive-v0.0.4 系統內置常見注解,支持自定義注解

cheng10 / 3058人閱讀

摘要:項目介紹日志脫敏是常見的安全需求。常見的脫敏內置方案。支持用戶自定義注解。自定義注解導入自定義注解新增功能。策略優先級優先生效,然后是系統內置注解,最后是用戶自定義注解。讓這些的密碼不進行脫敏定義測試對象定義一個使用自定義注解的對象。

項目介紹

日志脫敏是常見的安全需求。普通的基于工具類方法的方式,對代碼的入侵性太強。編寫起來又特別麻煩。

本項目提供基于注解的方式,并且內置了常見的脫敏方式,便于開發。

特性

基于注解的日志脫敏。

可以自定義策略實現,策略生效條件。

常見的脫敏內置方案。

java 深拷貝,且原始對象不用實現任何接口。

支持用戶自定義注解。

自定義注解 maven 導入

    com.github.houbb
    sensitive-core
    0.0.4
自定義注解

v0.0.4 新增功能。允許功能自定義條件注解和策略注解。

案例 自定義注解

策略脫敏

/**
 * 自定義密碼脫敏策略
 * @author binbin.hou
 * date 2019/1/17
 * @since 0.0.4
 */
@Inherited
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@SensitiveStrategy(CustomPasswordStrategy.class)
public @interface SensitiveCustomPasswordStrategy {
}

脫敏生效條件

/**
 * 自定義密碼脫敏策略生效條件
 * @author binbin.hou
 * date 2019/1/17
 * @since 0.0.4
 */
@Inherited
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@SensitiveCondition(ConditionFooPassword.class)
public @interface SensitiveCustomPasswordCondition{
}

TIPS

@SensitiveStrategy 策略多帶帶使用的時候,默認是生效的。

如果有 @SensitiveCondition 注解,則只有當條件滿足時,才會執行脫敏策略。

@SensitiveCondition 只會對系統內置注解和自定義注解生效,因為 @Sensitive 有屬于自己的策略生效條件。

策略優先級

@Sensitive 優先生效,然后是系統內置注解,最后是用戶自定義注解。

對應的實現

兩個元注解 @SensitiveStrategy、@SensitiveCondition 分別指定了對應的實現。

CustomPasswordStrategy.java

public class CustomPasswordStrategy implements IStrategy {

    @Override
    public Object des(Object original, IContext context) {
        return "**********************";
    }

}

ConditionFooPassword.java

/**
 * 讓這些 123456 的密碼不進行脫敏
 * @author binbin.hou
 * date 2019/1/2
 * @since 0.0.1
 */
public class ConditionFooPassword implements ICondition {
    @Override
    public boolean valid(IContext context) {
        try {
            Field field = context.getCurrentField();
            final Object currentObj = context.getCurrentObject();
            final String name = (String) field.get(currentObj);
            return !name.equals("123456");
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }
    }

}
定義測試對象

定義一個使用自定義注解的對象。

public class CustomPasswordModel {

    @SensitiveCustomPasswordCondition
    @SensitiveCustomPasswordStrategy
    private String password;

    @SensitiveCustomPasswordCondition
    @SensitiveStrategyPassword
    private String fooPassword;
    
    //其他方法
}
測試
/**
 * 自定義注解測試
 */
@Test
public void customAnnotationTest() {
    final String originalStr = "CustomPasswordModel{password="hello", fooPassword="123456"}";
    final String sensitiveStr = "CustomPasswordModel{password="**********************", fooPassword="123456"}";
    CustomPasswordModel model = buildCustomPasswordModel();
    Assert.assertEquals(originalStr, model.toString());

    CustomPasswordModel sensitive = SensitiveUtil.desCopy(model);
    Assert.assertEquals(sensitiveStr, sensitive.toString());
    Assert.assertEquals(originalStr, model.toString());
}

構建對象的方法如下:

/**
 * 構建自定義密碼對象
 * @return 對象
 */
private CustomPasswordModel buildCustomPasswordModel(){
    CustomPasswordModel model = new CustomPasswordModel();
    model.setPassword("hello");
    model.setFooPassword("123456");
    return model;
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73063.html

相關文章

  • java 日志脫敏框架 sensitive-新版本0.0.2-深度拷貝,屬性為對象和集合的支持

    摘要:項目介紹日志脫敏是常見的安全需求。特性基于注解的日志脫敏可以自定義策略實現,策略生效條件常見的脫敏內置方案深拷貝,且原始對象不用實現任何接口。放在集合屬性上,且屬性為普通對象作為演示,集合中為普通的字符串。 項目介紹 日志脫敏是常見的安全需求。普通的基于工具類方法的方式,對代碼的入侵性太強。編寫起來又特別麻煩。 本項目提供基于注解的方式,并且內置了常見的脫敏方式,便于開發。 用戶也可以...

    plokmju88 評論0 收藏0
  • Java注解-元數據、注解分類、內置注解定義注解

    摘要:注解有以下幾個知識點元數據注解的分類內置注解自定義注解注解處理器本文先介紹前面個知識點元數據注解的分類內置注解自定義注解。注解相當于是一種嵌入在程序中的元數據,可以使用注解解析工具或編譯器對其進行解析,也可以指定注解在編譯期或運行期有效。 大家好,我是樂字節的小樂,上次說過了Java多態的6大特性|樂字節,接下來我們來看看Java編程里的注解。showImg(https://segme...

    Yujiaao 評論0 收藏0
  • Java 總結

    摘要:中的詳解必修個多線程問題總結個多線程問題總結有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升開源的運行原理從虛擬機工作流程看運行原理。 自己實現集合框架 (三): 單鏈表的實現 自己實現集合框架 (三): 單鏈表的實現 基于 POI 封裝 ExcelUtil 精簡的 Excel 導入導出 由于 poi 本身只是針對于 ...

    caspar 評論0 收藏0
  • spring retry, guava retrying 的整合-sisyphus java 重試框

    摘要:特性支持過程式編程基于字節碼的代理重試基于注解的重試,允許自定義注解無縫接入接口與注解的統一解決與中的不足之處設計目的綜合了和的優勢。基于字節碼實現的代理重試,可以不依賴。提供基于代碼模式字節碼增強實現的方式。 Sisyphus 支持過程式編程和注解編程的 java 重試框架。 特性 支持 fluent 過程式編程 基于字節碼的代理重試 基于注解的重試,允許自定義注解 無縫接入 sp...

    宋華 評論0 收藏0
  • 15個經典的Spring面試常見問題

    摘要:我自己總結的學習的系統知識點以及面試問題,已經開源,目前已經。目前最新的版本中模塊的組件已經被廢棄掉,同時增加了用于異步響應式處理的組件。每一次請求都會產生一個新的,該僅在當前內有效。顯而易見,這種模式存在很多問題。 我自己總結的Java學習的系統知識點以及面試問題,已經開源,目前已經 41k+ Star。會一直完善下去,歡迎建議和指導,同時也歡迎Star: https://githu...

    sarva 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<