摘要:基于的架構(gòu)實(shí)戰(zhàn)案例配置文件屬性內(nèi)容加解密使用過配置文件的朋友都知道,資源文件中的內(nèi)容通常情況下是明文顯示,安全性就比較低一些。,官方給出的釋意是項目也采用此加密組件,結(jié)合使用。
基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-配置文件屬性內(nèi)容加解密
使用過SpringBoot配置文件的朋友都知道,資源文件中的內(nèi)容通常情況下是明文顯示,安全性就比較低一些。打開application.properties或application.yml,比如mysql登陸密碼,redis登陸密碼以及第三方的密鑰等等一覽無余,這里介紹一個加解密組件,提高一些屬性配置的安全性。
jasypt[http://www.jasypt.org/],官方給出的釋意是:
Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.
simplemall項目也采用此加密組件,結(jié)合spring boot使用。國外大神Ulises Bocchio寫了一個spring boot下用的工具包,Github地址:https://github.com/ulisesbocc...,下面介紹下jasypt在spring boot的用法。
1、引入maven依賴
com.github.ulisesbocchio jasypt-spring-boot-starter 1.14
2、配置加密參數(shù)
在application.yml 中增加配置
jasypt: encryptor: #這里可以理解成是加解密的時候使用的密鑰 password: your password
在application.properties中增加配置
jasypt.encryptor.password=your password
此處密碼的生成可以通過兩種方式生成,寫main函數(shù)生成和直接采用jar命令方式。本處采用main函數(shù)的方式,此代碼位于account-serv的test包中。
package com.simplemall.account.test; import org.jasypt.encryption.StringEncryptor; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import com.simplemall.account.AccountServApplication; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @SpringBootTest(classes = AccountServApplication.class) public class Jasyptest { @Autowired StringEncryptor encryptor; @Test public void getPass() { String result = encryptor.encrypt("root"); System.out.println(result); Assert.assertTrue(result.length() > 0); } }
3、升級application.properties/yml中相應(yīng)的配置項
舊有配置
#mysql database config spring.datasource.url=jdbc:mysql://localhost:3306/micro_account?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull #use jasypt to encrypt username/password spring.datasource.username=root spring.datasource.password=root spring.datasource.driverClassName=com.mysql.jdbc.Driver
升級后配置
#mysql database config spring.datasource.url=jdbc:mysql://localhost:3306/micro_account?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull #use jasypt to encrypt username/password spring.datasource.username=ENC(BnBr3/idF0PH9nd20A9BXw==) spring.datasource.password=ENC(BnBr3/idF0PH9nd20A9BXw==) spring.datasource.driverClassName=com.mysql.jdbc.Driver
至此,配置完成,效果就如你在simplemall源碼中看到的那樣,針對配置文件中相關(guān)屬性做了一次安全升級。
源碼:https://github.com/backkoms/s...
擴(kuò)展閱讀:
基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-序篇
基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-架構(gòu)拆解
Spring Boot + Elasticsearch 實(shí)現(xiàn)索引的日常維護(hù)
微服務(wù)體系下如何快速構(gòu)建一個服務(wù)
介紹幾款常用的在線API管理工具
如何從傳統(tǒng)軟件開發(fā)順利過渡到互聯(lián)網(wǎng)技術(shù)開發(fā)
學(xué)習(xí)新技術(shù)時你應(yīng)當(dāng)掌握的『最少必要知識』
做了七年軟件開發(fā)后反而更迷茫
軟技能:代碼之外的生存指南
程序員,保護(hù)你的好奇心和求知欲
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69018.html
摘要:服務(wù)拆分具體拆分到多細(xì),業(yè)內(nèi)沒有一個統(tǒng)一的標(biāo)準(zhǔn)。全部模塊基于,采用進(jìn)行項目管理。比較常見的做法時,每個子服務(wù)模塊中獨(dú)立一個模塊,存放實(shí)體及對外的接口。 自第一篇《基于SpringCloud的Microservices架構(gòu)實(shí)戰(zhàn)案例-序篇》發(fā)表出來后,差不多有半年時間了,一直也沒有接著拆分完,有如讀本書一樣,也是需要契機(jī)的,還是要把未完成的工作做完,雖然并不是什么經(jīng)典應(yīng)用,還是有必要將si...
摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...
摘要:添加應(yīng)用啟動類配置客戶端鏈接經(jīng)過對稱加解密的配置微服務(wù)專門為測試經(jīng)過對稱加解密的配置微服務(wù)微服務(wù)模塊。 SpringCloud(第 031 篇)配置客戶端ConfigClient鏈接經(jīng)過對稱加解密的配置微服務(wù) - 一、大致介紹 1、Git服務(wù)端的文件內(nèi)容進(jìn)行了加密處理,那么是不是配置客戶端拿到內(nèi)容之后需要解密呢? 2、答案顯然不是的,因為這樣解密的話,先不說實(shí)現(xiàn)起來的難易程度,單從表面...
摘要:創(chuàng)建服務(wù)注冊中心創(chuàng)建一個基礎(chǔ)的工程,命名為,并在中引入需要的依賴內(nèi)容通過注解啟動一個服務(wù)注冊中心提供給其他應(yīng)用進(jìn)行對話。 1.Spring Cloud簡介 Spring Cloud是一個基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開發(fā)工具,它為基于JVM的云應(yīng)用開發(fā)中涉及的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態(tài)管理等操作提供了一種簡單的開發(fā)方...
SpringCloud(第 033 篇)配置客戶端ConfigClient鏈接經(jīng)過對稱加解密的配置微服務(wù) - 一、大致介紹 1、在(第 031 篇)講解了如何鏈接對稱加密的配置服務(wù)端,而鏈接對稱非對稱加密的配置微服務(wù)也是同樣的; 2、配置客戶端不需要做什么加解密的配置,加解密的配置在服務(wù)端做就好了; 3、這里還順便列舉下配置路徑的規(guī)則: /****************************...
閱讀 2122·2021-11-22 15:24
閱讀 2410·2021-09-09 11:53
閱讀 3037·2021-09-04 16:40
閱讀 1636·2019-08-30 15:52
閱讀 3355·2019-08-29 13:47
閱讀 2735·2019-08-26 17:40
閱讀 1541·2019-08-26 13:24
閱讀 2245·2019-08-26 12:01