
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內存放加密後資訊。
Comment…