Menurut dokumentasi spring cloud config, jika kita ingin menonaktifkan dekripsi sisi server dan menanganinya oleh klien, kita dapat memasukkan properti server application.yml berikut:

spring:
 cloud:
  config:
   server:
    encrypt.enabled: false

Di sisi server, definisikan variabel env ENCRYPT_KEY lalu panggil curl untuk mendapatkan kata sandi terenkripsi, saya memperbarui file konfigurasi lalu saya komit

export ENCRYPTED=`curl config-server/encrypt -d ms-password-prod`
echo "spring.data.mongodb.paswword='{cipher}$ENCRYPTED'" >> establishment-services-prod.yml

Sekarang, ketika saya menelepon

curl -v config-server:9090/establishment-services/prod

Saya berharap untuk melihat kata sandi terenkripsi tetapi saya mendapatkan kata sandi yang didekripsi.

Saya menggunakan spring-boot 1.5.8 dan spring-cloud Dalston.SR4.

Anda dapat menemukan semua kode di akun Github saya.

5
andolsi zied 24 November 2017, 12:23

1 menjawab

Jawaban Terbaik

Memindahkan kunci spring.cloud.config.server.encrypt.enabled ke file konfigurasi bootstrap dari server konfigurasi Anda akan memperbaiki masalah tersebut.

Melihat dokumentasi proyek, saya tidak yakin apakah ini solusi atau perilaku yang dimaksudkan, karena tampaknya hanya kunci encrypt.* yang termasuk dalam konfigurasi bootstrap.

Ini bisa berupa bug atau peningkatan dokumentasi yang dapat Anda laporkan di pelacak masalah spring- konfigurasi awan.

13
Brian Clozel 24 November 2017, 16:16