SpringBoot中安全的設置阿里云日志SLS的accessKey

  眾所周知,阿里云的服務都是基于accesskeyId和accesskeySecret來進行身份鑒權的,但唯獨日志因為需要寫入到.xml文件里對于accesskeyId和accesskeySecret需要進行一定程度的改進,尤其是使用了jasypt進行加密的參數傳遞進去logback.xml更是會遇到需要對參數進行解密的問題,而官網只有簡單粗略的帶過如何自定義傳入accessKey,以下由我來說一下我的改造計劃. 

 

1.首先需要引入阿里云日志SLS和jasypt相關Maven包

 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId><version>2.5.0</version>
</dependency><dependency><groupId>com.aliyun.openservices</groupId><artifactId>aliyun-log-logback-appender</artifactId><version>0.1.29</version>
</dependency>

2.自定義 jasypt.encryptor.password 密碼并創建自定義jasypt的bean(務必先自定義jasypt密碼),然后放入環境變量中或者你偷懶直接先寫死在代碼里,在環境變量中通過System.getenv來獲取


import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.iv.RandomIvGenerator;
import org.jasypt.salt.RandomSaltGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class JasyptConfig {@Bean("jasyptStringEncryptor")public StringEncryptor stringEncryptor(){StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();encryptor.setAlgorithm("PBEWithMD5AndDES");encryptor.setIvGenerator(new RandomIvGenerator());encryptor.setSaltGenerator(new RandomSaltGenerator());encryptor.setStringOutputType("base64");encryptor.setPassword(System.getenv("jasypt.en

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73551.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于解決Ubuntu終端及系統字體大小的問題

在Ubuntu中調整終端和系統字體大小可以通過以下方法&#xff08;可能不僅僅只是這幾種&#xff09;實現&#xff1a; 1. 調整系統字體大小 打開終端并輸入以下命令&#xff0c;安裝GNOME Tweaks&#xff0c;等待安裝完成&#xff1a; sudo apt install gnome-tweaks 接著進行…

Rust vs. Go: 性能測試(2025)

本內容是對知名性能評測博主 Anton Putra Rust vs. Go (Golang): Performance 2025 內容的翻譯與整理, 有適當刪減, 相關數據和結論以原作結論為準。 再次對比 Rust 和 Go&#xff0c;但這次我們使用的是最具性能優勢的 HTTP 服務器庫---Hyper&#xff0c;它基于 Tokio 異步運…

【NLP 48、大語言模型的神秘力量 —— ICL:in context learning】

目錄 一、ICL的優勢 1.傳統做法 2.ICL做法 二、ICL的發展 三、ICL成因的兩種看法 1.meta learning 2.Bayesian Inference 四、ICL要點 ① 語言模型的規模 ② 提示詞prompt中提供的examples數量和順序 ③ 提示詞prompt的形式&#xff08;format&#xff09; 五、fine-tune VS I…

兩數之和解題記錄

開始打算用一個數組保存差值&#xff0c;arr[target-nums[i]] i, 只要arr[nums[i]]有內容就能滿足target&#xff0c;返回arr[nums[i]]和i。但是會出現復數的情況&#xff0c;所以換成map。 換成map就只用一邊遍歷&#xff0c;一遍檢查和存入對應key就行了&#xff0c;value就…

P1722 矩陣Ⅱ - 洛谷

題源&#xff1a;P1722 矩陣 II - 洛谷 看了題目之后&#xff0c;需要注意的是&#xff1a; ①在1 ~ i 個格子中紅色數量 > 黑色數量 ②最后&#xff0c;在2 * n 個格子中&#xff0c;紅色數量 黑色數量 根據這兩個約束條件&#xff0c;可以知道&#xff0c;第一個格…

數據庫——MySQL基礎操作

一、表結構與初始數據 假設存在以下兩張表&#xff1a; 1. student 表 字段名數據類型描述idINT學生唯一標識符nameVARCHAR(100)學生姓名ageINT學生年齡sexVARCHAR(10)學生性別 初始數據&#xff1a; idnameagesex1張三20男2李四22女3王五21男 2. course 表 字段名數據類…

行業白皮書2025 | 益企研究院:AI時代的存儲基石

在當今科技飛速發展的時代&#xff0c;AI技術已成為推動各行業變革的關鍵力量。日前&#xff0c;益企研究院重磅發布《AI時代的存儲基石》白皮書。 下載方式&#xff1a;關注“渡江客涂鴉板”&#xff0c;回復st250326獲取免費下載地址 數據需求與技術挑戰&#xff1a; AI技術…

音視頻新人如何快速上手nginx-rtmp-module

一、整體設計架構 nginx-rtmp-module 是 Nginx 的一個擴展模塊&#xff0c;專門為 Nginx 添加了對 RTMP 協議的支持。其核心功能包括&#xff1a; RTMP推流&#xff08;publish&#xff09; RTMP拉流&#xff08;play&#xff09; 流轉發&#xff08;relay&#xff09; 流錄…

vue 封裝 Axios菜鳥教程

1、Axios依賴下載 $ npm install axios 2、以下鏈接為Axios 的api Axios 實例 | Axios中文文檔 | Axios中文網 3、 項目新建request.js&#xff0c;文件名稱按照駝峰命名法就可以 4、封裝request.js代碼如下 import axios from "axios"//創建axios實例&#xff0…

[項目]基于FreeRTOS的STM32四軸飛行器: 十一.MPU6050配置與讀取

基于FreeRTOS的STM32四軸飛行器: 十一.MPU6050 一.芯片介紹二.配置I2C三.編寫驅動四.讀取任務的測試五.MPU6050六軸數據的校準 一.芯片介紹 芯片應該放置在PCB中間&#xff0c;X Y軸原點&#xff0c;敏感度131表示范圍越小越靈敏。理想狀態放置在地面上X&#xff0c;Y&#xf…

iOS常見網絡框架

URLSession、Alamofire 和 Moya 1. URLSession 1.1 核心概念 URLSession 是 Apple 官方提供的網絡請求 API&#xff0c;封裝在 Foundation 框架中。它支持 HTTP、HTTPS、FTP 等協議&#xff0c;可用于&#xff1a; ? ? 普通網絡請求&#xff08;GET/POST&#xff09; ? …

AOA(到達角度)與TOA(到達時間)兩個技術的混合定位,MATLAB例程,自適應基站數量,三維空間下的運動軌跡,濾波使用UKF(無跡卡爾曼濾波)

本文介紹一個MATLAB代碼,實現了三維動態目標非線性定位與濾波系統,通過融合 到達角(AOA) 和 到達時間(TOA) 的混合定位方法,結合 無跡卡爾曼濾波(UKF) 處理非線性觀測模型,優化軌跡精度。代碼支持自適應基站數量配置,適用于復雜非線性場景的定位研究。 文章目錄 運行…

Ubuntu 重置密碼方法

目錄 修改過 root 密碼&#xff0c;重置密碼的方法沒改過 root 密碼?&#xff0c;重置密碼的方法 修改過 root 密碼&#xff0c;重置密碼的方法 Ubuntu 默認禁用root用戶&#xff0c;意思就是安裝好Ubuntu系統后&#xff0c;root用戶默認是沒有密碼的&#xff0c;普通用戶通過…

Leetcode 路徑總和 III

java 解法一&#xff1a;雙遞歸 class Solution {public int pathSum(TreeNode root, long targetSum) { //外層遞歸,把每個節點都當作路徑起點if(root null) return 0;int ret rootSum(root, targetSum);ret pathSum(root.left, targetSum);ret pathSum(root.right, targ…

WEB安全--SQL注入--利用log寫入webshell

一、原理&#xff1a; 這也是對之前文章的補充&#xff1a;WEB安全--SQL注入--INTO OUTFILE-CSDN博客 我們可以通過修改MySQL的log文件&#xff0c;用select關鍵字寫入木馬文件放在服務器物理地址中&#xff0c;通過訪問物理地址getshell。 二、條件&#xff1a; 用戶有寫入權限…

C++11中引入的比較常用的新特性講解(上)

目錄 1、C11簡介 2、統一的列表初始化 2.1、&#xff5b;&#xff5d;初始化 2.2、std::initializer_list 3、變量類型推導 3.1、auto 3.2、decltype 3.3、nullptr 4、范圍for循環 5、STL中一些變化 6、右值引用和移動語義 6.1、左值引用和右值引用 6.2、右值引用…

hugo+github pages 部署實驗室網站

&#xff01;&#xff01;太爽了&#xff0c;看了很久教程&#xff0c;自己試了好久&#xff0c;終于搞懂怎么把hugo和public單獨進行部署了&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 目的是什么&#xff1f;目的當然是為了修改這天殺的hugo的模板。現在…

兩頭文件互引問題解決(前置聲明)

問題&#xff1a; 想必正在基礎階段學習的朋友們都遇見過以下問題吧 widget.h otherwidget.h 如上問題是&#xff0c;我在widget.h中引用了otherwidget.h ,在ohterwidget中又引用了widget.h&#xff0c;兩個頭文件互相引用產生了報錯 解決辦法&#xff1a; 那么我們該如何解…

Python 異常處理完全指南

目錄 一、異常處理基礎1. 基本語法結構 二、常見異常類型1. 內置異常層次2. 常見異常示例 三、多重異常處理1. 合并捕獲2. 分層處理 四、finally與else子句1. finally 應用場景2. else 使用技巧 五、自定義異常1. 創建異常類2. 異常繼承體系 六、異常鏈與上下文1. raise from 語…

【Qt】Ubuntu22.04使用命令安裝Qt5和Qt6

1、安裝Qt5 注意:Ubuntu22.04已經沒有 qt5-default ,因此不能一鍵安裝啦 1)安裝核心組件 sudo apt install qtbase5-dev qtchooser qt5-qmake qtcreator2)安裝QtCreator sudo apt install qtcreator3)安裝工具包、Qt Quick 開發的核心庫(qtdeclarative5-dev) sudo a…