用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

sc-sc    -  云代码空间

——

Spring Cloud Config 加密和解密

2018-06-12|578阅||

摘要:Spring Cloud Config 加密和解密

重要 先决条件:要使用加密和解密功能,您需要在JVM中安装全面的JCE(默认情况下不存在)。您可以从Oracle下载“Java加密扩展(JCE)无限强度管理策略文件”,并按照安装说明(实际上将JRE lib / security目录中的2个策略文件替换为您下载的文件)。

如果远程属性源包含加密内容(以{cipher}开头的值),则在通过HTTP发送到客户端之前,它们将被解密。这种设置的主要优点是,当它们“静止”时,属性值不必是纯文本(例如在git仓库中)。如果值无法解密,则从属性源中删除该值,并添加具有相同键的附加属性,但以“无效”作为前缀。和“不适用”的值(通常为“<n / a>”)。这主要是为了防止密码被用作密码并意外泄漏。

如果要为config客户端应用程序设置远程配置存储库,可能会包含一个application.yml,例如:

application.yml


spring:
  datasource:
    username: dbuser
    password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'

.properties文件中的加密值不能用引号括起来,否则不会解密该值:

application.properties

spring.datasource.username: dbuser
spring.datasource.password: {cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ

您可以安全地将此纯文本推送到共享git存储库,并且保密密码。

服务器还暴露了/encrypt和/decrypt端点(假设这些端点将被保护,并且只能由授权代理访问)。如果您正在编辑远程配置文件,可以使用Config Server通过POST到/encrypt端点来加密值,例如

$ curl localhost:8888/encrypt -d mysecret
682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda

逆向操作也可通过/decrypt获得(如果服务器配置了对称密钥或全密钥对):

注意 如果要加密的值具有需要进行URL编码的字符,则应使用--data-urlencode选项curl来确保它们已正确编码。

$ curl localhost:8888/decrypt -d 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
mysecret

小费 如果您使用curl进行测试,则使用--data-urlencode(而不是-d)或设置显式Content-Type: text/plain,以确保在有特殊字符时正确地对数据进行编码('+'特别是棘手)。

将加密的值添加到{cipher}前缀,然后再将其放入YAML或属性文件中,然后再提交并将其推送到远程可能不安全的存储区。

/encrypt和/decrypt端点也都接受/*/{name}/{profiles}形式的路径,当客户端调用到主环境资源时,可以用于每个应用程序(名称)和配置文件控制密码。

注意 为了以这种细微的方式控制密码,您还必须提供一种TextEncryptorLocator类型的@Bean,可以为每个名称和配置文件创建不同的加密器。默认提供的不会这样做(所有加密使用相同的密钥)。

spring命令行客户端(安装了Spring Cloud CLI扩展)也可以用于加密和解密,例如

$ spring encrypt mysecret --key foo
682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
$ spring decrypt --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda
mysecret
要在文件中使用密钥(例如用于加密的RSA公钥),使用“@”键入键值,并提供文件路径,例如
$ spring encrypt mysecret --key @${HOME}/.ssh/id_rsa.pub
AQAjPgt3eFZQXwt8tsHAVv/QHiY5sI2dRcR+...
关键参数是强制性的(尽管有一个--前缀)。完整项目的源码来源 技术支持求求yuncode.net


顶 10踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: sc-sc
    • 等级: 高级设计师
    • 积分: 7490
    • 代码: 0 个
    • 文章: 302 篇
    • 随想: 0 条
    • 访问: 15 次
    • 关注

    人气代码

      标签

      java(63)api(1)教程(26)Spring(84)cache(1)+(10)springmvc(6)mybatis(10)(十)(1)(十一)(1)Cloud(44)Boot(12)Cloud-hong(1)Cloud分布式微服(1)Cloud-Hong(1)Cloud分布式微服(1)Cloud--Hon(1)Cloud分布式微服(1)Cloud--Hon(1)Cloud分布式微服(1)Cloud-鸿鹄Cl(1)Cloud--hon(1)Cloud分布式微服(1)Cloud--Hon(1)分布式微服务云系统-(1)cloud--鸿鹄C(1)源码(3)简介(1)Cloud微服务分布(1)-(33)cloud集成项目(6)Cloud--Hon(1)Cloud分布式微服(1)Cloud--hon(1)Cloud分布式微服(1)Cloud-鸿鹄Cl(1)Cloud--Hon(1)Cloud分布式微服(1)Cloud微服务分布(1)Cloud微服务分布(1)Cloud-Hong(1)Cloud分布式微服(1)Cloud-鸿鹄Cl(1)使用(1)搭建微服务基础设施(1)Cloud云服务(3)HongHu架构co(1)项目构建过程(5)springclou(1)Eureka服务器搭(1)Cloud--Hon(1)Cloud分布式微服(1)关于Spring(6)Cloud的核心特性(4)Cloud微服务分布(1)Config-快速开(1)Cloud企业微服务(1)Config-快速开(1)Cloud--Hon(1)Cloud分布式微服(1)企业分布式微服务云架(1)Config-快速开(1)Cloud--Hon(1)Cloud分布式微服(1)整合spring(8)cloud云服务架构(11)企业云架构commo(1)企业分布式微服务云架(1)介绍一下Spring(1)Cloud微服务架构(1)总结Spring(4)Cloud各个组件配(1)Config客户端使(1)cloud架构(1)HongHu(1)common-ser(1)RestTempla(1)particle云架(1)Cloud+Spri(1)Boot+Mybat(1)企业分布式微服务云架(1)Config-快速开(1)Config(1)加密和解密(1)Cloud自定义引导(1)Cloud各个组件配(1)Cloud构建微服务(1)Cloud云架构(8)SSO单点登录之OA(1)SSO单点登录之OA(1)Cloud+Spri(1)Boot+Mybat(1)企业分布式微服务云架(1)commonserv(1)4.2.2以上版本和(1)SSO单点登录之OA(1)登出流程(3)(1)Cloud--Hon(1)Cloud分布式微服(1)Netflix(1)Commons(1)普通抽象(1)项目过程构建(1)Cloud微服务分布(1)Cloud微服务分布(1)企业分布式微服务云架(1)Cloud各个组件配(1)云架构代码结构构建(2)Cloud云服务架构(1)分享Spring(1)Cloud分布式微服(1)HongHu架构co(1)企业分布式微服务云架(1)Cloud大型互联网(1)Cloud--Hon(1)Cloud分布式微服(1)Cloud--Hon(1)Cloud分布式微服(1)企业分布式微服务云架(1)Cloud微服务分布(1)Cloud大型互联网(1)Config-Git(1)commonserv(1)cloud微服务分布(1)Cloud微服务分布(1)Cloud微服务分布(1)HongHu架构co(1)Cloud微服务架构(1)Cloud大型互联网(1)Cloud大型互联网(1)Config服务器(1)springclou(1)Cloud-hong(1)Cloud分布式微服(1)SpringClou(1)SpringBoot(73)mybatis分布式(1)SpringClou(1)mybatis分布式(1)mybatis分布式(1)mybatis分布式(1)mybatis分布式(1)Cloud微服务分布(1)Cloud各个组件配(1)(十六)(1)-使用spring(1)企业级(26)(一)(1)(二)(1)(三)(1)cloud项目(2)(五)(1)(六)整合sprin(1)企业云架构commo(1)(七)整合sprin(1)common-ser(1)(八)整合sprin(1)commonserv(1)(十二)(1)(九)整合sprin(1)commonserv(1)SSO单点登录之OA(1)SSO单点登录之OA(1)SSO单点登录之OA(1)java电子商务系统(1)MVC+mybati(1)cloud+spri(1)boot+sprin(1)电子商务云平台b2b(1)b2c(1)o2o(1)springmvc+(1)springclou(1)Cloud简介(1)springclou(1)springclou(1)springclou(1)B2B2C(66)mybatis电子商(1)Springclou(1)Springboot(1)关于SpringCl(1)(九)Java(3)o2o多用户商城(27)(十)Java(1)(十一)Java(1)(十二)(1)springclou(1)springclou(1)springclou(1)SSO单点登录之OA(1)springclou(1)SSO单点登录之OA(1)springclou(1)(十三)java(2)b2b2c多用户商城(6)SSO单点登录之OA(1)(十四)Java(3)springclou(1)springclou(1)(十五)Java(3)springclou(1)springclou(1)(十六)Java(3)springclou(1)springclou(1)(十七)Java(2)springclou(1)springclou(1)springclou(1)springclou(1)java版(1)o2o电子商务云商平(1)Cloud构建分布式(1)Config)(6)ssm(12)springclou(1)springclou(1)企业级java(12)springclou(1)b2bc商城系统开源(1)springclou(1)shop(20)多用户商城系统源码:(2)多用户商城系统源码(3)(十二)java(1)多用户商城系统源码-(2)Bus)(1)Sleuth)(2)springclou(1)springclou(1)SpringClou(1)多级分销Spring(1)高可用的分布式配置中(1)springclou(1)springclou(1)springclou(1)b2b2c多用户商城(1)(十一)JAVA(2)b2bc商城系统开源(1)b2bc商城系统开源(1)b2bc商城系统开源(1)b2b2c多用户商城(1)SpringClou(1)SpringClou(1)SpringClou(1)SpringClou(1)配置管理(1)配置自动刷新(1)springclou(1)springboot(1)(五)springb(1)beatlsql(5)b2b2c多用户商城(1)b2bc商城系统开源(1)(七)springb(1)多用户商城系统(2)(十)用spring(1)(二)Spring(3)Boot配置文件详解(3)整合JPA(1)springclou(1)springclou(1)多用户商城系统源码((1)springclou(1)b2b2c多用户商城(1)(四)断路器(Hys(1)Dashboard)(3)Turbine)(2)o2o分布式(1)b2bc商城系统开源(1)commonserv(1)项目构建过程(八)(1)springclou(1)springclou(1)(十)微服务多用户商(1)b2b2c多用户商城(1)mybatis多租户(1)mybatis多租户(1)mybatis多租户(1)springClou(1)mybatis分布式(1)mybatis多租户(1)(十三)java(1)mybatis仿淘宝(1)微服务java_b2(1)springboot(1)多用户商城系统源码-(1)多用户商城系统源码-(1)(五)JAVA(1)(六)(1)(八)java(1)多用户商城系统源码:(1)微服务b2b2c电子(1)SpringClou(1)springboot(1)SpringClou(1)多用户商城系统源码-(1)springclou(1)springclou(1)springclou(1)springclou(1)b2b2c多用户商城(1)多级分销多租户电子商(1)Dashboard和(1)springclou(1)springclou(1)springclou(1)SpringClou(1)Springclou(1)B2B2C-服务消费(1)(十二)JAVA(1)b2b2c多用户商城(1)Sleuth和Zip(1)(二)企业级java(1)b2bc商城系统开源(1)(三)java(1)springclou(1)springclou(1)springboot(1)Java多用户商城系(1)(一)构建第一个Sp(1)Java版本多用户B(1)Java多用户商城系(1)Dashboard和(1)Java版本多用户B(1)springboot(1)(五)springb(1)springclou(1)springboot(1)SpringBoot(1)多用户商城系统(八)(1)springboot(1)SpringClou(1)springclou(1)b2b2c多用户商城(1)SpringClou(1)springclou(1)springclou(1)(十)springb(1)b2b2c多用户商城(1)b2b2c多用户商城(1)SSO单点登录之OA(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)springboot(1)多级分销Spring(1)整合企业架构的技术点(1)Java版本多用户B(1)Cloud集成项目简(1)springclou(1)springclou(1)Springclou(1)B2B2C-服务消费(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码((1)b2bc商城系统开源(1)(十四)服务注册(c(1)多用户商城系统源码((1)b2bc商城系统开源(1)Dashboard和(1)多用户商城系统源码((1)(六)分布式配置中心(1)springclou(1)b2bc商城系统开源(1)多用户商城系统源码-(1)多用户商城系统-(五(1)springboot(1)Java版本多用户B(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码-(1)springclou(1)多用户商城系统源码((1)Java多用户商城系(1)-JAVA(1)多用户商城(二)Eu(1)springboot(1)springclou(1)b2b2c多用户商城(1)b2bc商城系统开源(1)多用户商城系统源码((1)微服务java_b2(1)(一)构建第一个Sp(1)springboot(1)Java多用户商城系(1)(三)SpringB(1)多用户商城系统源码((1)多用户商城系统(五)(1)企业分布式微服务云S(1)(十一)docker(1)企业分布式微服务云S(1)(十二)断路器监控((1)企业分布式微服务云S(1)(十三)断路器聚合监(1)企业分布式微服务云S(1)(十四)服务注册(c(1)微服务架构(4)企业分布式微服务云S(1)mybatis(八)(1)企业分布式微服务云S(1)(九)服务链路追踪((1)springclou(1)Sleuth和Zip(1)springclou(1)Sleuth和Zip(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)Dashboard和(1)springclou(1)springclou(1)Dashboard和(1)springclou(1)springclou(1)springclou(1)springclou(1)springclou(1)(六)springb(1)(七)springb(1)(八)springb(1)(九)springb(1)Restdocs创建(1)(十一)spring(1)(十二)spring(1)(十三)spring(1)企业分布式微服务云S(1)(十)高可用的服务注(1)企业分布式微服务云S(1)(十一)docker(1)企业分布式微服务云S(1)(十二)断路器监控((1)企业分布式微服务云S(1)(十三)断路器聚合监(1)企业分布式微服务云S(1)(十四)服务注册(c(1)SpringClou(1)SpringClou(1)SpringClou(1)SpringClou(1)(一)构建第一个Sp(1)(四)(1)(七)(1)(一)构建第一个Sp(1)(三)SpringB(1)(四)SpringB(1)(五)springb(1)(六)springb(1)(七)springb(1)(八)springb(1)(九)springb(1)SpringClou(1)服务的注册与发现(E(1)SpringClou(1)服务消费者(rest(1)SpringClou(1)服务消费者(Feig(1)SpringClou(1)断路器(Hystri(1)SpringClou(1)(五)路由网关(zu(1)SpringClou(1)分布式配置中心(Sp(1)SpringClou(1)高可用的分布式配置中(1)(一)微服务分布式云(1)

      最新提问

        站长推荐