Spring Cloud Config 服务端与 客户端之间的关系

 

1、服务端有两个可配置项

# 是否在服务器端进行解密操作,默认开启。
# 如果改为不在服务器端开启(false)
# 那么一定要将encrypt.key 删除。
# 否则会出现客户端无法解密。
# 为了安全性考虑,关闭服务器端解密功能
spring:
  cloud:
    config:
      server:
        encrypt:
          enabled: false

# 服务器端解密功能开启
# 为了安全性考虑,关闭服务器端解密功能
#encrypt:
#  key: 12312321

  

  1.1 spring.cloud.config.server.encrypt.enable 此项配置代表是否在服务器端解密数据,默认为true。

  1.2 如果设置为true,且配置了 encrypt.key 则就可以在服务器端进行解密操作,如果没有encrypt.key 则加载时会报错。

    1.2.1 也有可能不报错,这要看是否在服务器启东时就加载远程配置文件(spring.cloud.config.server.clone-on-start),如果是则加载时就报错。

    1.2.2 也有可能没有配置启动就加载机制,则会等到使用到这个配置的时候进行远程配置的clone操作。

  1.3 如果是false,则将密文原封不动的发送给客户端,此时encrypt.key 可有可无,因为不在服务器端进行解密配置,所以可以不配置。

  1.4 如果要手动的加密一个明文,要开启 encrypt.key。curl -X POST http://localhost:8979/encrypt -d 待加密的明文

 

2、客户端有一个配置项

# 配置服务器地址
spring:
  application:
    name: thunisoft-microservice-foo
  cloud:
    config:
      uri: http://localhost:8979/
      profile: dev
      label: master

# 解密秘钥
encrypt:
  key: 12312321

  2.1 如果服务器端配置了解密功能,已经在加载远程配置的时候,将加密的数据进行了解密操作,则客户端可以不做任何解密配置,可以直接使用。

  2.2 如果服务器没有进行解密操作,返回的是原始加密数据,则要配置秘钥,进行解密操作。

 

posted @ 2018-03-13 22:50  GordonDicaprio  阅读(1056)  评论(0编辑  收藏  举报