springcloud应用配置中心config的安全设置

在springcloud应用开发中,为了方便在线管理我们的配置文件,通常会配一个配置中心config-server,这里托管着应用的一些配置文件,这些配置文件中配置着我们很多的账号信息:如mysql、redis、mongodb、rabbitmq等等的账号和密码。牵扯到账号信息,想必我们要保证如何保证其安全性。

1.保证容器文件访问的安全性,即保证所有的网络资源请求都需要登录

通过springboot配置属性之security,配置security.user.name和security.user.password可以初步达到安全访问的效果。具体配置:在application.yml中配置如下:

 
springboot配置属性之security
加上下面的比较好:
security:
basic:
enabled: true

在pom依赖中增加

 
security依赖

重启config-server后,再通过url访问文件资源时,会出现

 
security安全登录页面
***:如果是直接调用url,那么需要在url里面加上参数,加在Headers里面,Authorization:Basic *************=
*********是经过base64对用户名密码加密之后得到的,获取它可以在上面的安全登录页面登入之后,F12打开,查找request headers里面。或者用postman测试工具输入用户名密码,去Headers查看。

2.将配置中心里所有配置文件中的密码进行加密,保证其密文性

springcloud的配置服务中心具有decrypt/encrypt功能,可以将原文加密成密文,也可以将密文解密成原文。其工作原理是,首先将密码等原文通过开发者设置的key和springcloud中的encrypt加密成密文,用密文替代配置文件中心的原文密码;项目启动加载配置中心时,会自动将密文解密成原文并加载到spring的上下文中(spring上下文中缓存的是原文而不是密文)。具体操作步骤如下

a.首先去http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html将文件下载并解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,如果安装了jre,将两个jar文件放到%JRE_HOME%\lib\security文件目录下,如果安装了jdk,也将两个jar文件放到%JDK_HOME%\jre\lib\security文件目录下。(jdk8环境)

b.设置加密密钥,在config-server的微服务中的application.yml文件中配置security.key=your key

 
配置密钥

c.重启配置中心服务,会发现

 
security策略加密/解密方法发现

d.将密码原文加密

 
通过postman工具加密

e.将加密后的密文复制,加上{cipher}标识,编辑在配置文件中(标识符和密文中间不能有任何字符,包括空格)

 
编辑配置文件

搞定后,我们的配置文件里所有的密码都是密文,即使将配置文件托管在GitHub上,别人看到也无法得知原文密码是什么。

转自:https://www.jianshu.com/p/93592860993d

springcloud(四):应用配置中心config的安全设置的更多相关文章

  1. 学习一下 SpringCloud (五)-- 配置中心 Config、消息总线 Bus、链路追踪 Sleuth、配置中心 Nacos

    (1) 相关博文地址: 学习一下 SpringCloud (一)-- 从单体架构到微服务架构.代码拆分(maven 聚合): https://www.cnblogs.com/l-y-h/p/14105 ...

  2. 七、springcloud之配置中心Config(二)之高可用集群

    方案一:传统作法(不推荐) 服务端负载均衡 将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护,而客户端在指定Config Server位置时, ...

  3. Spring-cloud微服务实战【九】:分布式配置中心config

      回忆一下,在前面的文章中,我们使用了spring cloud eureka/ribbon/feign/hystrix/zuul搭建了一个完整的微服务系统,不管是队内还是对外都已经比较完善了,那我们 ...

  4. SpringCloud配置中心config

    1,配置中心可以用zookeeper来实现,也可以用apllo 来实现,springcloud 也自带了配置中心config Apollo 实现分布式配置中心 zookeeper:实现分布式配置中心, ...

  5. springcloud费话之配置中心客户端(SVN)

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

  6. springcloud(七):配置中心svn示例和refresh

    上一篇springcloud(六):配置中心git示例留了一个小问题,当重新修改配置文件提交后,客户端获取的仍然是修改前的信息,这个问题我们先放下,待会再讲.国内很多公司都使用的svn来做代码的版本控 ...

  7. springcloud(九):配置中心和消息总线(配置中心终结版)

    我们在springcloud(七):配置中心svn示例和refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端 ...

  8. [转]springcloud(九):配置中心和消息总线(配置中心终结版)

    https://www.cnblogs.com/ityouknow/p/6931958.html springcloud(九):配置中心和消息总线(配置中心终结版) 我们在springcloud(七) ...

  9. springcloud费话之配置中心server修改

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

随机推荐

  1. WPF中ComboBox控件绑定键值对操作

    WPF中下拉框将键值对作为其数据源的具体操作.本实例以枚举类型以及枚举特性描述字符串生成键值对来进行. namespace ViewC { /// <summary> /// View.x ...

  2. Spark安装与部署

    1.首先安装scala(找到合适版本的具体地址下载) 在/usr/local/目录下 wget https://www.scala-lang.org/download/**** 2.安装spark ( ...

  3. 面试java后端面经_4

    作者:早该变坏链接:https://www.nowcoder.com/discuss/157627来源:牛客网 情话部分: 当有自己心仪的小姐姐,又没确定关系,有时候分享彼此爱情观的时候,你就可以开始 ...

  4. 入门MySQL——查询语法练习

    前言: 前面几篇文章为大家介绍了DML以及DDL语句的使用方法,本篇文章将主要讲述常用的查询语法.其实MySQL官网给出了多个示例数据库供大家实用查询,下面我们以最常用的员工示例数据库为准,详细介绍各 ...

  5. Executor线程池只看这一篇就够了

    线程池为线程生命周期的开销和资源不足问题提供了解决方 案.通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上. 线程实现方式 Thread.Runnable.Callable //实现Runn ...

  6. Hive 系列(六)—— Hive 视图和索引

    一.视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集.视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0 ...

  7. C#/Java 动态生成电子发票

    电子发票是电商时代的产物,PDF发票是最常见的电子发票之一.在这篇文章中,我将给大家分享一个免费的动态生成PDF电子发票的C#方案,并在文章末尾附上Java解决方案. 典型的发票包含客户和供应商的名称 ...

  8. 2015-11-13 linux基础笔记

    1.安装linux 使用光盘,版本CENSOS6.6 2.命令过长请使用\  后enter键换行转义  直到不需要转义后回车运行 3.linux 大小写敏感 4.显示terminal 输出语言  ec ...

  9. SpringBoot 动态配置邮箱发件人

    SpringBoot 动态配置邮箱发件人 现在的消息模块少不了邮件发送.短信发送和手机推送的功能.邮件发送的功能历史最为悠久,也算的上烂大街的功能.一般在配置文件中设置好邮箱地址.账号.密码和发件服务 ...

  10. [Python] socket发送UDP广播实现聊天室功能

    一.说明 本文主要使用socket.socket发送UDP广播来实现聊天室功能. 重点难点:理解UDP通讯流程.多线程.UDP广播收发等. 测试环境:Win10\Python3.5. 程序基本流程:创 ...