1、为何要加安全认证

在开发Spring Cloud微服务项目时,Eureka默认是可以直接访问的,当项目上线部署时会暴露出很多安全问题,比如只要获取到Eureka注册中心的访问地址,就可以知悉该项目下所有的微服务信息,因此需要为线上生产环境的Eureka注册中心增加认证体系,只有通过安全校验的用户才有权访问。

2、开发安全的Spring Cloud Eureka

通过为Spring Cloud Eureka注册中心集成Apache Shiro、Spring Security等安全框架,可以快速的搭建一个安全的Eureka注册中心,也可以在Spring Cloud Eureka项目下自行开发一套安全认证程序,用来限制外部对Eureka的直接访问。

这里以Spring Cloud Eureka集成Spring Security安全框架的方式,开发安全的Spring Cloud Eureka:

(1)引入Spring Security依赖

打开项目下的pom.xml文件,增加Spring Security依赖,如下所示:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>

(2)配置Spring Security

打开项目的配置文件application.yml,添加一个Spring Security账号,如下所示:

spring:application:name: MALL-EUREKAsecurity:user:name: systempassword: sys123

(3)关闭Spring Security的CSRF

在项目/src/main下新建一个Spring Security配置类,重写其中的configure()方法,如下所示:

package cn.org.xcore.mall.eureka;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/*** Spring Security配置** @author 李海林 手机:13802780104|微信:lihailin9073|Email:767679879@qq.com* @copyright 个人开发者李海林版权所有,产品详情及技术服务请登录官网查询[http://www.x-core.org.cn]* @create 2019-09-07 13:24*/
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable(); // 关闭csrfhttp.authorizeRequests().anyRequest().authenticated().and().httpBasic(); // 开启认证// 注意:为了可以使用 http://${user}:${password}@${host}:${port}/eureka/ 这种方式登录,所以必须是httpBasic,如果是form方式,不能使用url格式登录}
}

3、调整Spring Cloud 微服务的注册方式

由于为Spring Cloud Eureka增加了安全认证体系,因此所有的Eureka客户端,也就是所有要注册到Eureka注册中心的微服务,都需要调整注册的方式,在注册地址中提供账号和密码。

打开任意一个微服务的配置文件application.yml,修改其中的eureka注册地址为如下示例代码:

eureka:client:service-url:defaultZone: http://system:sys123@peer1:8761/eureka/ # 单点Eureka Server时使用,将微服务注册到单个Eureka节点上,适合用于本地开发和测试#defaultZone: http://system:sys123@peer1:8761/eureka/,http://system:sys123@peer2:8762/eureka/,http://system:sys123@peer3:8763/eureka/ # 集群Eureka Server时使用,将微服务注册到集群中的多个Eureka节点上,适合用于线上生产环境
其中的system:sys123就是用于认证的账号密码。

06 为注册中心Spring Cloud Eureka增加安全认证相关推荐

  1. eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...

    友情提示:全文13000多文字,预计阅读时间10-15分钟 Spring Cloud Eureka作为常用的服务注册中心,我们有必要去了解其内在实现机制,这样出现问题的时候我们可以快速去定位问题.当我 ...

  2. 注册中心 Spring Cloud Eureka

    一.搭建eureka-server工程 目录结构 二.导入依赖 <?xml version="1.0" encoding="UTF-8"?> < ...

  3. 微服务架构:注册中心 ZooKeeper、Eureka、Consul 、Nacos 对比!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 前言 服务注册中心本质上是为了解耦服务提供者和服务消费者. ...

  4. 注册中心ZooKeeper、Eureka、Consul 、Nacos

    前言 服务注册中心本质上是为了解耦服务提供者和服务消费者.对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的.更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数 ...

  5. 《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》

    Spring cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. S ...

  6. 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比

    前言 服务注册中心本质上是为了解耦服务提供者和服务消费者.对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的.更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数 ...

  7. Spring Cloud Eureka(三)实现一个高可用的注册中心

    Spring Cloud Eureka(三)实现一个高可用的注册中心 实现一个高可用的注册中心 在微服务结构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须为服务的各个组件进行 ...

  8. eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心

    Sping boot Eureka是服务中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等.Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装. 在du ...

  9. Spring Cloud 学习笔记(一) 之服务治理模块Spring Cloud Eureka 搭建注册中心

    2019独角兽企业重金招聘Python工程师标准>>> 关于springboot的学习请参考前面的文章 接下来我们会开启一系列关于springcloud的学习文章. 一.概念 首先我 ...

最新文章

  1. mac mysql phpmyadmin_Mac下搭建PHP开发环境(Apache+PHP+MySQL+phpMyAdmin)
  2. linux显卡烤机操作,显卡拷机必备:FurMark时隔一年全新升级
  3. 空间句法软件_【特训营2:空间句法高阶班】GIS中的空间句法运用 丨城市数据派...
  4. Boost.Signals2 的有序插槽 hello world 示例
  5. 初学Ajax相关知识
  6. rust布料怎么弄_布料“难弄”,你需要从这六方面解决!
  7. sriov查看pf-vf对应关系
  8. Redis 安装教程
  9. 《逆向工程核心原理》学习笔记(一):代码逆向技术基础
  10. 康托尔点集matlab实数,仿照科赫曲线程序 , 按照课件上的算法写出康托尔点集 – MATLAB中文论坛...
  11. 国内首届 Flutter Festival 为热爱开启!
  12. @kubernetes(k8s)使用adm安装实现keepalived高可用
  13. 微信小程序实现地图自定义大小画圆以及地图自适应(iview-Weapp+微信开发者工具)
  14. iOS系列开发-版本控制工具Git的使用
  15. 最好用的 Base64 在线工具
  16. 如何在WindowsXP中发短信
  17. JDK1.8 关于list集合Lambda的使用
  18. 电脑提高或开启高性能模式
  19. 2022年上海应届生落户公司要求!打分不够72的同学可以考虑!
  20. matlab画时间 频率图,在matlab中画频数图和累积频率图

热门文章

  1. 出奇制胜:绕过Cloudflare验证的神秘方法
  2. 【Shiro原理一】shiro:hasPermission 隐藏页面无权访问的资源
  3. R语言 mice包 Error in terms.formula(tmp, simplify = TRUE) : ExtractVars里的模型公式不对
  4. 线上渠道做APP好还是小程序好?
  5. MyBatis 使用 Redis 缓存
  6. mysql navicat导入bcp_SQL Server数据导入导出工具BCP详解
  7. 名帖388 文徵明 草书《扇面六幅》
  8. 你尝过被人误会的委屈吗?看完本篇…
  9. iOS 组件化的三种方案
  10. SEH结构体异常处理