2016-11-23 8 views
4

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?

+0

Sie brauchen nur '--data-urlencode' wenn es Sonderzeichen. Es funktioniert, wenn ich nur "-d" benutze. – spencergibb

+0

Eigentlich fehlte mir ein '-',' --data-urlencode', der auch für mich funktionierte. – spencergibb

+0

@spencergibb Gedanken teilen Ihr Projekt? Keine Arbeit für mich –

Antwort

4

Ich habe gerade herausgefunden, was los ist:

$ curl -X POST localhost:8888/encrypt -d FOO 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 67 100 64 100  3 4000 187 --:--:-- --:--:-- --:--:-- 4000e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87 

I 4000e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87 als verschlüsselter Text nahm und es hat nicht funktioniert.

Das Problem ist, dass die aktuelle Geschwindigkeit Spalte rechts, bevor die Antwort ist, so dass wir es verwenden, als ob es Teil der Antwort waren.

Die tatsächliche chiffrierten Text ist, die aktuelle Geschwindigkeit zu entfernen: e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87

$ curl localhost:8888/decrypt -d e474cd78d6c18e0e5395e67a3bc0865a75077650e91d2249d460e91d6989ce87 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 67 100  3 100 64 187 4000 --:--:-- --:--:-- --:--:-- 4000FOO 
+0

Ich hatte das gleiche Problem! Ich habe tatsächlich eine Github-Ausgabe eingefügt. –

Verwandte Themen