spring cloud config server的编写及配置内容的加解密

版本信息

spring-boot-starter-parent 2.4.0
spring-cloud-config-server 3.0.3
spring-cloud-starter-bootstrap 3.0.3

编写spring cloud config server

  1. 创建一个远程仓库,例如:https://github.com/Darcy-Hu/spring-cloud-config.git,在仓库中创建几个配置文件:
    demo.properties
    demo-dev.properties
    
    内容分别为:
    profile: default-1.0
    profile: dev-1.0
    
  2. 创建一个maven工程springcloud-config-server,并添加依赖:
    	<dependency>
    		<groupId>org.springframework.cloud</groupId>
    		<artifactId>spring-cloud-config-server</artifactId>
    		<version>3.0.3</version>
    	</dependency>
    
  3. 在启动类上添加@EnableConfigServer,声明这是一个config server。
    package com.example.spring.cloud.config;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.config.server.EnableConfigServer;
    
    @EnableConfigServer
    @SpringBootApplication
    public class DemoApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(DemoApplication.class, args);
    	}
    
    }
    
  4. 编写配置文件application.yml
server:
  port: 8081

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/Darcy-Hu/spring-cloud-config.git #Git仓库的地址
          username: assdwe  #Git仓库的账号
          password: 123456  #Git仓库的密码
  1. 端点与配置文件映射规则:
    /{application}/{profile}[/{label}]
    /{application}-{profile}.yml
    /{application}-{profile}.properties
    /{label}/{application}-{profile}.yml
    /{label}/{application}-{profile}.properties
    {application}表示微服务的名称(我这里理解为文件名称),{label}对应Git仓库的分支,默认为master
  2. 测试结果
    启动项目springcloud-config-server,分别输入:
    http://localhost:8081/demo/dev
    http://localhost:8081/demo/dev/main
    结果如下图所示:
    在这里插入图片描述
    在这里插入图片描述

配置内容的加解密

加密内容需要以【’{cipher}+密文的形式存储’】,例如 ‘{cipher}AQAzvD3sDd1s+m/LOpK21qogn7VsY+7q+rAqI7DbH7aL0NN0Zxf0AmGgZOBAvMYq5GVU1qpsUv786ztdQCRy2quCnu2Nstb7jvJWdxYYBrqBE1G4CKmKP1Tp0IiIJ9wL8lWMBq69QOvyem+vxF4YNOKbRqKwbgHgdVgeIh+AaiSh+FR26y4puU4SVklrPFpYI66Km1RnkFI0oy9w6z1InrKQQKGObDvtMFIifcu5ZSA322I45SoPlBLeb7Wew0g9wV0AGqK+nHsAQlyJXxAAkcq6mJ/OZ+SWrzrxiN+yjvBKcuSD7lRbKImohS7IlfHI1CkY7BCMDZKYrADdUl5bh4ncBV7wi/ht3HM6rRE1wphYUfS1yz4a33aH8FgKaY+WVsU=’
1. 环境准备: 安装Java Cryptography Extension(JCE)
首先打开你的jdk安装目录(…/jre/lib/security),jdk8的目录有两种情况:
a. 这种情况下,只需要将java.security中的crypto.policy=unlimited前面的注释放开即可
在这里插入图片描述
b. 如果security文件夹下有local_policy.jar和US_export_policy.jar这两个jar包,我们需要去官网下载JCE,下载地址: JCE8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
解压后,将获取的local_policy.jar和US_export_policy.jar这两个jar包,复制到security文件夹下替换掉即可。

2. 对称加密
a. 创建bootstrap.yml文件,添加如下内容:

encrypt:
   key: qyswccsd

b. 测试结果
http://localhost:8081/encrypt/status 返回ok即可
在这里插入图片描述
取得加密后的字段:
在这里插入图片描述
3. 非对称加密

a. 执行以下命令(windows环境下,可打开cmd执行),创建一个Key Store.

keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass changeme -keystore server.jks -storepass letmein

将生成的server.jks文件复制到项目的classpath下
在这里插入图片描述
b. 在bootstrp.yml中添加以下内容

encrypt:
  keyStore:
    location: classpath:/server.jks
    password: letmein
    alias: mytestkey
    secret: changeme

取得如下结果:
在这里插入图片描述

可能出现的问题及解决方案

参考链接:https://blog.csdn.net/qq_40260565/article/details/119966512

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值