Die Microservices-Architektur hat mehrere Dienste, die miteinander interagieren, und externe Ressourcen wie Datenbanken. Sie benötigen außerdem Zugriff auf Benutzernamen und Passwörter, um auf diese Ressourcen zugreifen zu können. Normalerweise werden diese Anmeldeinformationen in den Konfigurationseigenschaften gespeichert. Jeder Microservice verfügt also über eine eigene Kopie der Anmeldeinformationen. Wenn sich Anmeldeinformationen ändern, müssen wir die Konfigurationen in allen Microservices aktualisieren. Wir haben zuvor eine Lösung für dieses Problem besprochen: Spring Cloud Config Nativer Server oder Spring Cloud Config Git-Server wo in der Regel gemeinsame globale Eigenschaften gespeichert sind, die sich in allen Microservices wiederholen. Das Speichern der Geheimnisse in der Konfigurationsdatei ist jedoch weiterhin ein Sicherheitsproblem. Obiger Ansatz als 2 Nachteile-
- Kein einziger Punkt der Wahrheit
- Sicherheitsrisiko der Offenlegung der Anmeldeinformationen
In diesem Tutorial werden Spring Cloud Config und Hashicorp Vault verwendet, um Geheimnisse zu verwalten und sensible Daten zu schützen.
Hashicorp Vault ist eine Plattform zum Sichern, Speichern und strengen Kontrollieren des Zugriffs auf Token, Passwörter, Zertifikate, Verschlüsselungsschlüssel zum Schutz sensibler Daten und anderer Geheimnisse in einer dynamischen Infrastruktur.
reagieren-native-easy-grid
Mit Vault rufen wir die Anmeldeinformationen aus dem Vault-Schlüssel-/Wertespeicher ab.
Wir werden einen einfachen Spring Boot Microservice implementieren, der Mitarbeiterdetails aus der MySql-Datenbank zurückgibt. Wir werden die Spring Boot + MySQL-Anwendung mit Spring Boot JDBC erstellen. Wir haben es schon gesehen Spring Boot MYSQL JDBC-Grundlagen in einem früheren Tutorial. In werden wir zunächst die MySql-Anmeldeinformationen in der Konfigurationsdatei speichern.
Später werden wir diese Anwendung ändern, um die MySQL-Anmeldeinformationen von HashiCorp Vault abzurufen.
Spring Boot + MySQL-Anwendung
Das Projekt wird wie folgt aussehen:
Ergänzen Sie die Spring-jdbc-Starter-Abhängigkeit .
XML
1
2
3
xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'>
4
4.0.0com.javainuse
5
boot-jdbc
6
0.0.1-SNAPSHOT
7
jarboot-jdbc
8
Demo project for Spring Boot
9
org.springframework.boot
10
spring-boot-starter-parent
elf
2.3.0.RELEASE
12
13
http://www.fox.com/activate
14
UTF-8
fünfzehn
UTF-8
16
1.8
17
18
19
org.springframework.boot
zwanzig
spring-boot-starter-web
einundzwanzig
22
2. 3
org.springframework.boot
24
spring-boot-starter-jdbc
25
26
mysql
27
mysql-connector-java
28
runtime
29
30
31
32
33
org.springframework.boot
3. 4
Vs-Code-HTML-Formatierer
spring-boot-maven-plugin
35
36
37
Geben Sie in der Datei application.properties die Datenquelleneigenschaften an
XML
1
spring.datasource.url=jdbc:mysql://localhost/bootdb?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false
2
spring.datasource.username=root
3
spring.datasource.password=root
4
spring.datasource.platform=mysql
5
spring.datasource.initialization-mode=always
Erstellen Sie die Datei schema-mysql.sql und geben Sie die Initialisierungsskripts an —
XML
1
DROP TABLE IF EXISTS employee;CREATE TABLE employee (
2
Cash-App, diese Überweisung ist fehlgeschlagen
empId VARCHAR(10) NOT NULL,
3
empName VARCHAR(100) NOT NULL
4
);INSERT INTO employee(empId,empName)values('emp001','emp1');
5
INSERT INTO employee(empId,empName)values('emp002','emp2');
6
INSERT INTO employee(empId,empName)values('emp003','emp3');
Erstellen Sie die Mitarbeiterdomänenklasse
#cloud #tutorial #frühlingsstiefel #frühlingswolke
dzone.com
Spring Cloud + Hashicorp Vault Hello World-Beispiel
Spring Cloud + Hashicorp Vault Hello World Beispiel. In diesem Frühjahrs-Cloud-Tutorial verwenden wir Hashicorp Vault, um Anmeldeinformationen für Microservices zu sichern.