06 为注册中心Spring Cloud Eureka增加安全认证
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增加安全认证相关推荐
- eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
友情提示:全文13000多文字,预计阅读时间10-15分钟 Spring Cloud Eureka作为常用的服务注册中心,我们有必要去了解其内在实现机制,这样出现问题的时候我们可以快速去定位问题.当我 ...
- 注册中心 Spring Cloud Eureka
一.搭建eureka-server工程 目录结构 二.导入依赖 <?xml version="1.0" encoding="UTF-8"?> < ...
- 微服务架构:注册中心 ZooKeeper、Eureka、Consul 、Nacos 对比!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 前言 服务注册中心本质上是为了解耦服务提供者和服务消费者. ...
- 注册中心ZooKeeper、Eureka、Consul 、Nacos
前言 服务注册中心本质上是为了解耦服务提供者和服务消费者.对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的.更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数 ...
- 《SpringCloud超级入门》Spring Cloud Eureka是什么?《八》
Spring cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. S ...
- 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
前言 服务注册中心本质上是为了解耦服务提供者和服务消费者.对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的.更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数 ...
- Spring Cloud Eureka(三)实现一个高可用的注册中心
Spring Cloud Eureka(三)实现一个高可用的注册中心 实现一个高可用的注册中心 在微服务结构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须为服务的各个组件进行 ...
- eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心
Sping boot Eureka是服务中心,管理各种服务功能包括服务的注册.发现.熔断.负载.降级等.Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装. 在du ...
- Spring Cloud 学习笔记(一) 之服务治理模块Spring Cloud Eureka 搭建注册中心
2019独角兽企业重金招聘Python工程师标准>>> 关于springboot的学习请参考前面的文章 接下来我们会开启一系列关于springcloud的学习文章. 一.概念 首先我 ...
最新文章
- mac mysql phpmyadmin_Mac下搭建PHP开发环境(Apache+PHP+MySQL+phpMyAdmin)
- linux显卡烤机操作,显卡拷机必备:FurMark时隔一年全新升级
- 空间句法软件_【特训营2:空间句法高阶班】GIS中的空间句法运用 丨城市数据派...
- Boost.Signals2 的有序插槽 hello world 示例
- 初学Ajax相关知识
- rust布料怎么弄_布料“难弄”,你需要从这六方面解决!
- sriov查看pf-vf对应关系
- Redis 安装教程
- 《逆向工程核心原理》学习笔记(一):代码逆向技术基础
- 康托尔点集matlab实数,仿照科赫曲线程序 , 按照课件上的算法写出康托尔点集 – MATLAB中文论坛...
- 国内首届 Flutter Festival 为热爱开启!
- @kubernetes(k8s)使用adm安装实现keepalived高可用
- 微信小程序实现地图自定义大小画圆以及地图自适应(iview-Weapp+微信开发者工具)
- iOS系列开发-版本控制工具Git的使用
- 最好用的 Base64 在线工具
- 如何在WindowsXP中发短信
- JDK1.8 关于list集合Lambda的使用
- 电脑提高或开启高性能模式
- 2022年上海应届生落户公司要求!打分不够72的同学可以考虑!
- matlab画时间 频率图,在matlab中画频数图和累积频率图
热门文章
- 出奇制胜:绕过Cloudflare验证的神秘方法
- 【Shiro原理一】shiro:hasPermission 隐藏页面无权访问的资源
- R语言 mice包 Error in terms.formula(tmp, simplify = TRUE) : ExtractVars里的模型公式不对
- 线上渠道做APP好还是小程序好?
- MyBatis 使用 Redis 缓存
- mysql navicat导入bcp_SQL Server数据导入导出工具BCP详解
- 名帖388 文徵明 草书《扇面六幅》
- 你尝过被人误会的委屈吗?看完本篇…
- iOS 组件化的三种方案
- SEH结构体异常处理