分享免费的编程资源和教程

网站首页 > 技术教程 正文

SpringCloud微服务架构篇7:Config配置资源库及加解密

goqiw 2024-11-27 13:59:02 技术教程 15 ℃ 0 评论

配置资源库

1、配置资源规则详解

Spring Cloud Config是通过EnvironmentRepository来获取Environment对象解决的。该对象是对Spring的Environment(包括作为主要配置属性的propertySources)对象的浅拷贝。在加载Environment相应资源时参数变化成了以下变量:

  • {application}:对应客户端配置中的spring.application.name。
  • {profile}:对应客户端配置中的spring.profiles.action。
  • {label}:对应配置服务端所配置的spring.cloud.config.label。
  • 当配置客户端启动时,根据bootstrap.yml中配置的应用名称(spring.application.name)、环境名(spring.profiles.active),向配置服务器请求获取配置数据。
  • 配置服务器根绝客户端的请求参数、以及配置文件中所配置的标签(spring.cloud.config.label),从git仓库中按照上述规则去查找服务的配置文件。
  • 配置服务器将匹配到的git仓库拉取到本地,并建立本地缓存。
  • 配置服务器根据拉取到的配置文件创建Spring的ApplicationContext实例,然后将该配置信息返回给客户端。
  • 客户端获取到配置服务器返回的数据后,将这些配置数据加载到自己的上下文中。同时,因为这些配置数据的优先级高于本地JAR包中的配置,因为将不再加载本地的配置。

2、集成Git仓库

通过spring.cloud.config.server.git.uri属性设置好git地址,设置好git的用户名和密码。

3、搜索目录

如果配置文件直接放在git根目录下,则不需要进行设置。如果放到特定的子目录下,需要设置searchPath指定目录。

4、本地缓存

配置服务器从git获取配置信息后,将会在本地存储一份。但无法访问到git时,则会读取之前缓存在本地文件系统中的配置,将这些配置信息返回给客户端。


配置的加密与解密

1、安装JCE(Java Cryptography Extension)

Spring Cloud Config所提供的加解密依赖JCE是一组包,提供用于加密、秘钥生成算法和协议,以及消息认证码的算法及实现,这些包实现对称、非对称、块和流密码的加密支持。

  • https://www.oracle.com/java/technologies/javase-jce8-downloads.html,下载JCE扩展包jce_policy-8.zip。
  • 解压,获得两个jar包:local_policy.jar和US_export_policy.jar。
  • 打开$JAVA_HOME/jre/lib/security目录,将该目录下的local_policy.jar和US_export_policy.jar文件备份到其他目录
  • 将下载解压后的local_policy.jar和US_export_policy.jar复制过来。

2、使用对称加密

配置服务端:

3、加密/解密端点

  • /encrypt:加密端点。使用该端点可以对所提供的字符串进行加密。
  • /decrypt:解密端点。使用该端点可以对所要解密的字符串进行解密。

4、客户端解密

  • 需要禁用掉配置服务端的解密处理。是否启用配置服务器的解密处理通过spring.cloud.config.server.encrypt.enabled属性控制。
  • 在客户端项目,增加和服务器同样的秘钥。encrypt.key=test
  • 为客户端增加spring-security-rsa依赖。

5、非对称加密

需要使用Java工具——Keytool。Keytool是一个Java数据证书的管理工具,Keytool使用keystore文件存储秘钥和证书。

keystore文件里包含两种数据:一种是秘钥实体-秘钥或者是私钥和配对公钥(采用非对称加密);另一种是可信任的证书实体,仅包含公钥。

需要使用Keytool生成一个秘钥对。

keytool -genkeypair -alias alias -keyalg RSA -dname "CN=test" -keypass secret -keystore server.jks -storepass password

然后将生成的server.jks文件复制到配置服务器的resources目录下。

修改配置文件

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表