首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Cloud Config 开发指南 2

昨天写了一篇Spring Cloud Config 编码指南,因为细节太多,网上介绍也很多,所以没写的太详细,只是说了句有问题大家一起讨论,然后就默默的提供了自己的GitHub。当时实际上还在搞一个主题,就是基于Spring Cloud Config的加解密。比如说数据库的配置,总会有数据库密码。有密码了你总不能写个明文的放在SVN上,放在上面了被别人拿走了你总不能说不怪你自己。

为此,Spring Cloud Config开发了加解密的EndPoint。官方的介绍说,使用了RSA算法。RSA加解密比DES等算法慢很多,但是也难解密很多。毕竟找大的质数很简单,而解出来不简单。

先来看看最终的实现成果。我们在SVN的配置文件中,填入加密后的密文,随后通过Spring Cloud Config Client获取,得到的是解密后的明文。填入的是密文,获取的是明文,就是这么简单。

首先,很负责的说,去下对应JDK和操作系统版本的JCE,不要抱有侥幸心理。否则你看到Illegal key size的时候,也还是要下载JCE。反正就两个jar包。下载完毕后,往jre/lib/security文件夹里一丢就行,又不占地方,也不要做配置。看清楚,是在jre目录下,不是jdk。

随后,在你的config server应用下,新建一个bootstrap.yml,填入你的密码。比如我写的就是这个。这一条在官方文档里没有做介绍,能发现完全靠的是我把Spring源代码翻来覆去看了好几圈。

encrypt:

key: showmethemoney

嗯,好久没打星际了。

application.yml里也要配置。

spring:

cloud:

config:

server:

encrypt:

enabled: true

下一步是获取加密后的密文。如果你的config server工作正常,你可以用curl来获取密文。windows下的curl需要自己折腾,直接bing就有很多,也可以到Linux底下去搞,反正不难。命令行如下。

curl http://localhost:7000/encrypt -d giveyoumillionsofdollars

返回的结果就是加密后的密文。你可以把这个密文写到你原来需要写明文的地方了。神也猜不出来你这是什么。有一点需要注意的是,yaml文件的加密字符串必须用单引号包括,properties文件的加密字符串必须不能用单引号包裹,请切实注意。然后不管你的密文是什么,一定要用打头。

以上就是config server所需要做的全部工作。剩下来的,如常,用你的client来访问,获取到的就是明文了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111G0IND000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券