shanchen
shanchen

hi

Spring 連線資訊 密碼存放型式

每個後端通常都須要連到DB、Redis,而存放密碼有很多方式。
若是把所有環境的密碼都明文放在project,那一定會有人用這組連到DB。
為了測試,直接修改,然後忘記改回去,造成一堆問題。 
理想情況還是非local的都要加密,要連線到DB的帳號另外開跟設定對應權限。

1. Spring 原生方式

直接寫在
application-{env}.properties裡面。

spring.master.datasource.username=???spring.master.datasource.password=???spring.redis.password=???

2. 第三方套件 jasypt

ulisesbocchio/jasypt-spring-boot
Jasypt integration for Spring boot 1.4.X , 1.5.X and 2.0.X Jasypt Spring Boot provides Encryption support for property…github.com

也是寫在properties,紀錄的是加密過的pwd.

類似以下

spring.master.datasource.username=ENC(密文)

3. 在Jboss中設定

在Server裡面設定加密,通常是非local環境。
設定應該會長得像這樣

              

要在ENC_FILE_DIR 設定密鑰。

4.購買廠商的solution

簡單來說,就是利用中介一個系統,與AP溝通。
AP存放加密後密碼,先使用中介使用AP的UID來驗證,最後會送回完整密碼,AP再去跟DB建立連線。之後在properties內存放加密後資訊。

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论