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项目中进行测试

测试成功


你可能感兴趣的:(SpringCloudConfig中的加密、Bus、Stream)