SpringCloudConfig中的加密、Bus、Stream

一、对称加密

    1.对称加密:对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)

    一般情况下,window运行环境不支持加密,需要配置加密环境:

        a.在application.properties/yml全局配置中添加密钥

配置密钥

        b.配置JCE(依据JDK加密的类库)

JDK目录
JRE目录

    c.调整Spring Cloud版本(高版本不用)

SpringCloud版本配置
步骤

    d.启动类和项目结构

项目结构

        e.测试加密状态

测试加密状态

    2.加密效果演示

        a.需要在Git远程仓库配置我们加密后的文件信息等,我们可以借助HttpClient工具类进行加密

工具类加密

        b.在Git远程仓库中配置加密信息用来访问

配置远程仓库

二、非对称加密

    1.非对称加密算法安全级别较高,加密复杂,加密(encryption)和解密(decryption)使用的密钥(secret key)不同(分公钥和私钥)

简图

    2.对称加密和非对称加密的区别

        a.对称加密算法在加密时使用的是同一个密钥;

        b.非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key)和私有密钥(private key)

区别

    3.非对称加密需要用到Keytool(JDK提供的可以生成数字证书的工具)

        Keytool是一个java数据证书的管理工具

        Keytool将密钥(key)和证书(certificates)存在一个keystore的文件中

        Keytool文件,包含两种数据:密钥实体(Key entity)-密钥(secret key)或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trustedcertificate entries)-只包含公钥

        借助DOS窗口或其他Shell工具运行命令,可以生成密钥(私钥),注意:需要用管理员身份运行生成工具

    keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"

详情参考证书及证书管理(keytool工具实例)

黑窗口

    生成的文件在当前运行黑窗口的目录

生成的文件

    跟非对称加密一样配置application.properties/yml文件

application.properties/yml

        证书存放位置和项目结构

证书/私钥存放位置

        Git远程仓库中的配置文件

Git远程仓库中的配置文件

        通过URL访问远程仓库

访问测试

三、配置中心的用户安全认证

        为了防止url盗用,开启认证相当于访问的时候【进行权限验证】,增加了数据安全性

安全认证的依赖

        在服务端的applicaiton.proerptie/yml文件开启安全认证

服务端

        在客户端设置安全保护参数

客户端

    注意:SpringCloud高版本和低版本有细微差距

        依赖差距

依赖差距

        服务端开启差距

服务端开启差距

    禁用CSRF保护,开启Basic认证

配置类

    客户端applicaiton.properties/yml文件的差距

全局配置文件的差距

四、Spring    Cloud    Bus

    Spring Cloud Bus(消息总线):集成了市面上常用的消息代理(rabbitmq、kafka等)

    解决的问题:解决了微服务数据变更,及时同步的问题

简图

        不同的刷新方式简图

针对Client/Server刷新
针对局部刷新

    1.Bus-Server项目        

        a.创建Bus-Server,添加依赖

pom.xml

        b.application.properties/yml配置文件

application.properties/yml

        c.项目结构和启动类

项目结构

    2.创建Bus-client项目(并复制一份作为测试用)

applicaiton.proerties/yml配置文件

        访问Git远程仓库并展示的API

Controller

        项目结构和启动类

项目结构
刷新URL

    借助HttpClient工具类来发送刷新请求

刷新请求

    SpringCloud高版本和低版本的差距

    1.application.properties/yml文件中权限拦截的配置

applicaiton.properties/yml文件

    2.刷新地址的不同

刷新地址的不同

    3,可以借助CURL命令来发送POST请求、

    详情参考:curl百度百科

curl工具

五、消息驱动入门(Stream)

    1.创建消息发送者项目Sender

        a.修改依赖

依赖文件

        b.application.properties/yml配置文件

application.properties/yml

        c.创建消息发送接口,通过@Output注解指定输出的交换器(信道)

MySendService接口

        d.修改启动类,添加@EnableBinding注解通过value属性绑定发送接口

项目结构

    2.创建消息接收者项目Receiver

        a.修改依赖

配置依赖

        b.修改application.properties/yml配置文件

application.properties/yml

        c.创建接收消息的接口,通过@Input注解指定接收的交换器(信道)

接收接口

        d.创建处理消息的类,通过@EnableBinding注解绑定接收的接口

            通过@StreamListener接口指定要监听的队列

消息处理类

        e.修改启动类,添加@EnableBinding注解,通过value属性指定接收消息的接口

项目结构

    3.在Send项目中进行测试

测试成功


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一篇:《Spring Cloud入门教程(七):分布式链路跟踪(Sleuth)》 本人和同事撰写的《Spring...
    CD826阅读 16,190评论 6 28
  • 服务器https配置 配置https操作说明文档 1、查看服务器环境配置(tomcat和apache合并使用) 2...
    南京杨小兵阅读 12,917评论 0 9
  • 密码算法的特性1、是否需要事先配送私钥:对称密码需要考虑2、是否会遭到中间人攻击:非对称密码分发公钥时需要考虑3、...
    saoraozhe3hao阅读 5,215评论 0 0
  • 超文本传输安全协议(HTTPS,常称为 HTTP over TLS/SSL)是一种通过计算机网络进行安全通信的传输...
    MarchCd阅读 11,986评论 1 22
  • 前言 文中首先解释加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的...
    sunny冲哥阅读 8,158评论 0 2