方式一:Spring Cloud Config
一、建立config server
1. build.gradle 文件中添加:
yaml
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
ext {
set('springCloudVersion', "2021.0.8")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-config-server'
// 不加该依赖无法调用 /encrypt 和 /decrypt 接口:
implementation 'org.springframework.cloud:spring-cloud-starter-config'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
2. application.yaml 文件中添加:
- 存放配置文件的git仓库。可以是git remote repo,也可以是local repo(file://...)
yaml
spring:
cloud:
config:
server:
git:
uri: https://gitlab.some.domain/somerepo.git
- 加解密的密钥
yaml
encrypt:
key: key_instance
3. Application 启动类添加 @EnableConfigServer 注解:
(不加该注解也可实现加解密功能)
java
@EnableConfigServer
@SpringBootApplication
public class DemoApplication {
...
}
二、获得加密后的密文
获得加密后的密文:
bash
$ curl http://localhost:8080/encrypt -d id111
7b04915ff83caae96116140fe180be4b9a217fbdaf4c3d38263c2479819d5202
获得解密后的明文:
bash
$ curl http://localhost:8080/decrypt -d 7b04915ff83caae96116140fe180be4b9a217fbdaf4c3d38263c2479819d5202
id111
三、将加密后的密文添加进配置文件
application.yaml 文件中添加:
-
加密后的密文
yamlid: '{cipher}7b04915ff83caae96116140fe180be4b9a217fbdaf4c3d38263c2479819d5202'
启动后项目中的id
属性会自动解密为"id111"。
Spring Cloud Config 配置的加密解密
分布式配置中心Spring Cloud Config初窥
Spring Cloud Config
建立 config client:
Spring Cloud Config(统一配置中心服务端和客户端)