中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網(wǎng)站怎么做小圖標免費做網(wǎng)站怎么做網(wǎng)站

做網(wǎng)站怎么做小圖標,免費做網(wǎng)站怎么做網(wǎng)站,黨建反腐倡廉建設(shè)網(wǎng)站,app 網(wǎng)站開發(fā)團隊人員配置一、前言 之前我寫過一篇文章使用SM4國密加密算法對Spring Boot項目數(shù)據(jù)庫連接信息以及yaml文件配置屬性進行加密配置(讀取時自動解密),對Spring Boot項目的屬性讀取時進行加解密,但是沒有說明對System.setProperty(key, value)設(shè)…

一、前言

之前我寫過一篇文章使用SM4國密加密算法對Spring Boot項目數(shù)據(jù)庫連接信息以及yaml文件配置屬性進行加密配置(讀取時自動解密),對Spring Boot項目的屬性讀取時進行加解密,但是沒有說明對System.setProperty(key, value)設(shè)置的屬性進行讀取加解密,這個在開發(fā)過程中應(yīng)該怎么實現(xiàn)呢?

二、開發(fā)方案

前置步驟我們在這里不再描述了,可以參考使用SM4國密加密算法對Spring Boot項目數(shù)據(jù)庫連接信息以及yaml文件配置屬性進行加密配置(讀取時自動解密),我們這里參考一下解決方案。

1. 通過擴展EnvironmentPostProcessor接口進行參數(shù)解密

1.1 示例代碼
import com.learn.SM4Utils; // 自己實現(xiàn)的SM4算法工具類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.env.ConfigurableEnvironment;import java.util.Map;
import java.util.Properties;
import java.util.Set;public class MyEnv implements EnvironmentPostProcessor {@Overridepublic void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {// 獲取所有系統(tǒng)參數(shù)Properties properties = System.getProperties();// 遍歷Set<Map.Entry<Object, Object>> entries = properties.entrySet();for (Map.Entry<Object, Object> entry : entries) {// 獲取設(shè)置值Object value = entry.getValue();if (value != null) {String v = (String) value;if (v.startsWith(SM4Utils.SM4_PREFIX)) { // 判斷是否進行了加密配置// 進行解密,然后重新設(shè)置System.setProperty((String) entry.getKey(), SM4Utils.decryptStr(v));}}}}
}
1.2 注冊自定義EnvironmentPostProcessor處理器

resource目錄下新建META-INF目錄,新建spring.factories文件,添加如下內(nèi)容:

org.springframework.boot.env.EnvironmentPostProcessor=\com.learn.env.MyEnv
1.3 測試

示例代碼:

SpringBootApplication
public class JenkinsDemo01Application {public static void main(String[] args) {String s = SM4Utils.encryptStr("hello,CSDN!");System.out.println("設(shè)置的value:" + s);System.setProperty("testKey", s);SpringApplication.run(JenkinsDemo01Application.class, args);System.out.println("獲取的value:" + System.getProperty("testKey"));}}

測試結(jié)果:

![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Spring%20Boot%E9%A1%B9%E7%9B%AE%E6%80%8E%E4%B9%88%E5%AF%B9System.setProperty(key%2C%20value&pos_id=img-KCqrwIPP-1708434412477)設(shè)置的屬性進行讀取加解密.assets/image-20240220210228771.png
)

2. 通過實現(xiàn)ApplicationListener事件監(jiān)聽實現(xiàn)

2.1 示例代碼
import com.learn.SM4Utils;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
import org.springframework.context.ApplicationListener;import java.util.Map;
import java.util.Properties;
import java.util.Set;public class MyEventListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {@Overridepublic void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {// 獲取所有系統(tǒng)參數(shù)Properties properties = System.getProperties();// 遍歷Set<Map.Entry<Object, Object>> entries = properties.entrySet();for (Map.Entry<Object, Object> entry : entries) {// 獲取設(shè)置值Object value = entry.getValue();if (value != null) {String v = (String) value;if (v.startsWith(SM4Utils.SM4_PREFIX)) { // 判斷是否進行了加密配置// 進行解密,然后重新設(shè)置System.setProperty((String) entry.getKey(), SM4Utils.decryptStr(v));}}}}
}
1.2 注冊自定義ApplicationListener事件監(jiān)聽

resource目錄下新建META-INF目錄,新建spring.factories文件,添加如下內(nèi)容:

org.springframework.context.ApplicationListener=\com.learn.event.MyEventListener
1.3 測試

示例代碼:

SpringBootApplication
public class JenkinsDemo01Application {public static void main(String[] args) {String s = SM4Utils.encryptStr("hello,CSDN!");System.out.println("設(shè)置的value:" + s);System.setProperty("testKey", s);SpringApplication.run(JenkinsDemo01Application.class, args);System.out.println("獲取的value:" + System.getProperty("testKey"));}}

測試結(jié)果:

![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=Spring%20Boot%E9%A1%B9%E7%9B%AE%E6%80%8E%E4%B9%88%E5%AF%B9System.setProperty(key%2C%20value&pos_id=img-CTO9Ca5D-1708434412478)設(shè)置的屬性進行讀取加解密.assets/image-20240220210228771.png

通過以上兩種方式,可以在項目啟動過程中獲取設(shè)置System參數(shù),進行解密,這樣獲取的時候就是解密以后的參數(shù)了。

http://www.risenshineclean.com/news/23175.html

相關(guān)文章:

  • 網(wǎng)站宣傳的好處chrome 谷歌瀏覽器
  • 萊陽網(wǎng)站建設(shè)阿拉營銷網(wǎng)站
  • 前端工程師是做網(wǎng)站嗎sem廣告
  • php中網(wǎng)站不同模板后臺邏輯代碼怎么管理免費網(wǎng)站注冊com
  • 搞網(wǎng)站網(wǎng)站交換鏈接友情鏈接的作用
  • 百度推廣 網(wǎng)站吸引力正規(guī)seo多少錢
  • 怎樣做阿里巴巴網(wǎng)站kj6699的seo綜合查詢
  • pc網(wǎng)站制作是指什么意思網(wǎng)絡(luò)平臺建設(shè)及運營方案
  • 網(wǎng)站建設(shè)公司是什么泉州百度搜索推廣
  • 做網(wǎng)站設(shè)置時間熱門關(guān)鍵詞查詢
  • 中升乙源建設(shè)工程有限公司網(wǎng)站seo智能優(yōu)化軟件
  • 長治網(wǎng)站制作招聘信息網(wǎng)頁生成app
  • 湖南網(wǎng)站建設(shè) 真好磐石網(wǎng)絡(luò)百度站長工具如何使用
  • 速成建站獲客渠道有哪些
  • 網(wǎng)站名稱 如何注冊武威網(wǎng)站seo
  • docker啟動wordpress南寧seo優(yōu)化公司排名
  • 學(xué)網(wǎng)站建設(shè)培訓(xùn)機構(gòu)宣傳推廣的十種方式
  • 網(wǎng)站網(wǎng)頁制作電話百度搜索指數(shù)在線查詢
  • 最專業(yè)的網(wǎng)站建設(shè)公司線上推廣的優(yōu)勢和好處
  • 抄襲網(wǎng)站模板網(wǎng)絡(luò)營銷有哪些手段
  • 北京房價小紅書seo排名優(yōu)化
  • h5可以來做網(wǎng)站嗎搜索大全瀏覽器
  • 網(wǎng)站建設(shè)與網(wǎng)絡(luò)營銷百度網(wǎng)址提交
  • 做外貿(mào)通常用哪些網(wǎng)站如何注冊自己的網(wǎng)站
  • 網(wǎng)站搭建的美工設(shè)計網(wǎng)絡(luò)營銷師證
  • 做網(wǎng)站后臺的電子文庫百度關(guān)鍵詞競價價格查詢
  • 門戶網(wǎng)站開發(fā)價格競價排名適合百度嗎
  • 電商網(wǎng)站 制作個人自己免費建網(wǎng)站
  • 迪士尼網(wǎng)站是誰做的百度搜索電話
  • 集團定制網(wǎng)站建設(shè)公司百度快照是什么意思?