亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析

 更新時間:2023年08月28日 09:36:04   作者:codecraft  
這篇文章主要為大家介紹了mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

本文主要研究一下mybatis-plus的SafetyEncryptProcessor

SafetyEncryptProcessor

mybatis-plus-boot-starter/src/main/java/com/baomidou/mybatisplus/autoconfigure/SafetyEncryptProcessor.java

public class SafetyEncryptProcessor implements EnvironmentPostProcessor {
    @Override
    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
        /**
         * 命令行中獲取密鑰
         */
        String mpwKey = null;
        for (PropertySource<?> ps : environment.getPropertySources()) {
            if (ps instanceof SimpleCommandLinePropertySource) {
                SimpleCommandLinePropertySource source = (SimpleCommandLinePropertySource) ps;
                mpwKey = source.getProperty("mpw.key");
                break;
            }
        }
        /**
         * 處理加密內(nèi)容
         */
        if (StringUtils.isNotBlank(mpwKey)) {
            HashMap<String, Object> map = new HashMap<>();
            for (PropertySource<?> ps : environment.getPropertySources()) {
                if (ps instanceof OriginTrackedMapPropertySource) {
                    OriginTrackedMapPropertySource source = (OriginTrackedMapPropertySource) ps;
                    for (String name : source.getPropertyNames()) {
                        Object value = source.getProperty(name);
                        if (value instanceof String) {
                            String str = (String) value;
                            if (str.startsWith("mpw:")) {
                                map.put(name, AES.decrypt(str.substring(4), mpwKey));
                            }
                        }
                    }
                }
            }
            // 將解密的數(shù)據(jù)放入環(huán)境變量,并處于第一優(yōu)先級上
            if (CollectionUtils.isNotEmpty(map)) {
                environment.getPropertySources().addFirst(new MapPropertySource("custom-encrypt", map));
            }
        }
    }
}

SafetyEncryptProcessor實現(xiàn)了EnvironmentPostProcessor接口,在postProcessEnvironment方法中先是找到mpw.key,然后遍歷所有PropertySource的所有屬性,找到mpw:開頭的,然后進行解密并替換到密文,最后放在environment的第一個PropertySource

spring.factories

mybatis-plus-boot-starter/src/main/resources/META-INF/spring.factories

# Auto Configure
org.springframework.boot.env.EnvironmentPostProcessor=\
  com.baomidou.mybatisplus.autoconfigure.SafetyEncryptProcessor

小結

之前的文章聊聊springboot的EnvironmentPostProcessor提到springboot提供了EnvironmentPostProcessor接口,該接口有postProcessEnvironment方法,其中envrionment參數(shù)類型為ConfigurableEnvironment,即應用可以通過實現(xiàn)這個接口進行env環(huán)境變量的操作。而mybatis-plus的SafetyEncryptProcessor正是一個實戰(zhàn)的好例子。

以上就是mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析的詳細內(nèi)容,更多關于mybatis-plus SafetyEncryptProcessor的資料請關注腳本之家其它相關文章!

相關文章

  • SpringBoot實現(xiàn)文件在線預覽功能的全過程

    SpringBoot實現(xiàn)文件在線預覽功能的全過程

    我們開發(fā)業(yè)務系統(tǒng)的時候,經(jīng)常有那種文檔文件在線預覽的需求,下面這篇文章主要給大家介紹了關于SpringBoot實現(xiàn)文件在線預覽功能的相關資料,需要的朋友可以參考下
    2021-11-11
  • Java?LockSupport常用方法的源碼分析

    Java?LockSupport常用方法的源碼分析

    這篇文章主要為大家詳細介紹了Java?LockSupport類中的方法和部分源碼,以及面試常問到的一個小問題,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-02-02
  • JavaCV使用ffmpeg實現(xiàn)錄屏功能

    JavaCV使用ffmpeg實現(xiàn)錄屏功能

    這篇文章主要介紹了JavaCV如何使用ffmpeg實現(xiàn)錄屏功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • maven tomcat plugin實現(xiàn)熱部署

    maven tomcat plugin實現(xiàn)熱部署

    這篇文章主要介紹了maven tomcat plugin實現(xiàn)熱部署,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • springboot如何讀取application.yml文件

    springboot如何讀取application.yml文件

    這篇文章主要介紹了springboot如何讀取application.yml文件的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-12-12
  • IDEA自動補全返回值的三種快捷方式

    IDEA自動補全返回值的三種快捷方式

    平常在編碼的過程中,可能需要調用第三方Api接口,這個過程中可能涉及到不太熟悉第三方Api接口的返回值類型,平常在編碼的過程中,可能需要調用第三方Api接口,這個過程中可能涉及到不太熟悉第三方Api接口的返回值類型,需要的朋友可以參考下
    2023-10-10
  • IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline)

    IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline)

    今天小編就為大家分享一篇關于IntelliJ IDEA中查看文件內(nèi)所有已聲明的方法(類似eclipse的outline),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • spring boot 如何請求后綴匹配

    spring boot 如何請求后綴匹配

    這篇文章主要介紹了spring boot 請求后綴匹配的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java程序員應該遵守的10條紀律

    Java程序員應該遵守的10條紀律

    Java程序員有許多應遵循的守則或最佳實踐方式。本文概述了每個開發(fā)者最應該遵循的10條守則或戒律,如果不遵循它們,將會導致災難性后果。
    2015-09-09
  • Java實現(xiàn)abc字符串排列組合

    Java實現(xiàn)abc字符串排列組合

    這篇文章主要為大家詳細介紹了JAVA實現(xiàn)abc字符串的排列組合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論