SpringCloud不能加密
想必很多同学在体验SpringCloud的时候都遇到了无法加密的情况吧。本人也是在尝试了各种方法,终于解决了不能加密的问题。现分享出来,希望能帮助和我同样问题的人。
在配置中心搭建完成后,访问/encrypt/status
接口,查看加密状态。
如果调用接口后台报错信息如下:
java.security.InvalidKeyException: Illegal key size
需要安装JCE加密扩展。
根据不同的JDK版本下载对应的JCE,JCE8的下载页面:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html。下载解压后使用local_polocy.jar
和US_export_policy.jar
复制替换到{JDK_HOME}/jre/lib/security/
目录。如果调用接口没有报错信息,且接口返回信息如下:
{ "description":"No key was installed for encryption service", "status":"NO_KEY" }
这其实是由于没有读取到
encrypt.key
,查看是否配置了该属性。而且encrypt.key
属性配置到application.yml
文件是不生效的,需要定义在bootstrap.yml
文件中。部分版本的SpringCloud加密功能是有问题的。在网上翻阅资料的时候看到
Dalston.SR2
和Dalston.SR3
可能会出现无法加密的情况。
按照以上设置,如果加密可以使用,/encrypt/status
接口将返回
{"status":"OK"}
使用POST发送一个加密请求,待加密文本通过Body以text/plain
的格式发送到/encrypt
接口