2015-02-09 11 views
8

Ich habe eine Spring Boot App, die Spring Cloud Config verwendet, aber ich möchte das Spring Cloud Config Passwort in der bootstrap.yml Datei von Spring Boot apps verschlüsseln. Gibt es eine Möglichkeit, dies zu tun? Unten ist ein Beispiel.Gibt es eine Möglichkeit Spring Cloud {cipher} in der Spring Boot-Anwendungskonfiguration zu verwenden?

Frühlings-Boot-App bootstrap.yml

spring: 
    cloud: 
    config: 
     uri: http://locahost:8888 
     username: user 
     password: '{cipher}encryptedpassword' 

Antwort

7

Es gibt Unterstützung für verschlüsselte Eigenschaften in dem Config-Client (wie in den user guide beschrieben). Offensichtlich müssen Sie einen Schlüssel bereitstellen, um die Eigenschaften zur Laufzeit zu entschlüsseln, also sehe ich nicht immer den Vorteil (ich nehme an, die Konfigurationsdatei ist ein bisschen wie ein Schlüsselspeicher mit einem speziellen Format, also nur Sie habe ein Geheimnis zum Schutz statt vieler). Beispiel (application.yml):

integration: 
    stores: 
    test: '{cipher}316f8cdbb776c23e679bf209014788a6eab7522f48f97114328c2c9388e6b3c1' 

und der Schlüssel (in bootstrap.yml):

encrypt: 
    key: ${ENCRYPT_KEY:} # deadbeef 
+0

Dank Dave zu verschlüsseln. Ich bin mir nicht sicher, was ich gestern falsch gemacht habe, aber ich konnte es nicht funktionieren lassen. Ich hatte ENCRYPT_KEY als Betriebssystemumgebungsvariable festgelegt. Ich habe es heute wieder versucht und es funktioniert. –

7

Ein paar Dinge, die ich entdeckt habe, im Zusammenhang mit diesem.

Wenn Sie bootstrap.yml (oder application.yml) verwenden, das Format für den Chiffretext muss in einfache Anführungszeichen eingeschlossen:

security.user.password: '{cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914' 

Wenn Sie bootstrap.properties (oder application.properties), die

ohne Anführungszeichen
security.user.password= {cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914 

die [Referenz docs] [1] zeigt die yml, die ich nie zu arbeiten bekam: Format für den Chiffretext darf NICHT eingeschlossen werden. SnakeYAML berichtet immer einen Fehler:

"expected <block end>, but found Scalar" 
+0

.properties files uses =, nicht ":" –

+0

Sie haben Recht, Sir. Modifiziert für die Nachwelt. –

Verwandte Themen