Ich habe ein einfaches Projekt mit dem Spring Cloud Config Server eingerichtet und versuche, einige Werte einfach zu verschlüsseln und zu entschlüsseln. Ich erstelle das Projekt als Spring Starter Project mit der folgenden pom.xml mit Spring Boot.Spring Cloud Config Symmetrischer Schlüssel
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.oreilly.cloud</groupId>
<artifactId>spring-microservices-config-server6</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-microservices-config-server6</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Von dort ändern ich die Haupt-Feder Boot-Application-Klasse die @EnableConfigServer
Anmerkung hinzufügen wie folgt:
@SpringBootApplication
@EnableConfigServer
public class SpringMicroservicesConfigServer6Application {
public static void main(String[] args) {
SpringApplication.run(SpringMicroservicesConfigServer6Application.class, args);
}
}
Innerhalb meiner Datei application.properties ich darauf Um ein Git-Repository einzurichten, richten Sie den Server-Port ein und aktivieren Sie die symmetrische Schlüsselverschlüsselung unter Verwendung von encrypt.key
wie folgt:
server.port=8888
spring.cloud.config.server.git.uri=C:/Users/training/Desktop/sts-workspace/configuration
encrypt.key=secret
Next eröffne ich ein Bash-Shell und einige Daten verschlüsseln:
$ curl http://localhost:8888/encrypt -d Kevin
, die den Wert erzeugt:
`315ca5592635e4f65e0a0278cd08f74b5cef27e8379bd0e0d81d08c9ed8fbac161d`
Wenn ich versuchen, den Wert zu entschlüsseln, mit:
$ curl localhost:8888/decrypt --data-urlencode 315ca5592635e4f65e0a0278cd08f74cef27e8379bd0e0d81d08c9ed8fbac161d
Ich erhalte den folgenden Fehler:
276description":"Text not encrypted with this key","status":"INVALID"}
Ich verstehe nicht, warum dieses einfache Szenario nahezu out of the box fast ausfällt. Es ist sehr wenig Konfiguration manuell erforderlich und ich frage mich, ob dies ein Problem mit dem Config-Server ist? Kann jemand helfen?
Sie brauchen nur '--data-urlencode' wenn es Sonderzeichen. Es funktioniert, wenn ich nur "-d" benutze. – spencergibb
Eigentlich fehlte mir ein '-',' --data-urlencode', der auch für mich funktionierte. – spencergibb
@spencergibb Gedanken teilen Ihr Projekt? Keine Arbeit für mich –