请选择 进入手机版 | 继续访问电脑版

热点推荐

查看: 35|回复: 0

SpringCloud集成Security安全(Eureka注册中心)

[复制链接]

该用户从未签到

447

主题

447

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2020-9-16 17:31:29 | 显示全部楼层 |阅读模式
1.说明

为了保护注册中心的服务安全,
避免恶意服务注册到Eureka,
需要对Eureka Server进行安全保护,
本文基于Spring Security方案,
为Eureka Server增加最简单的Basic安全认证。
2.Eureka Server添加安全依赖

修改pom.xml,添加spring-boot-starter-security依赖:
    org.springframework.boot    spring-boot-starter-security3.Eureka Server配置用户名密码

修改application.yml,配置用户名密码:
spring:  security:    user:      name: eureka      password: eureka1234564.Eureka Server,测试验证

先只启动Eureka Server,
通过浏览器的URL访问注册中心,
http://localhost:7001/
首先会跳到登录界面,
要求输入用户名密码:


认证成功后,访问到管理界面:

5.Eureka Server关闭csrf检验

Security默认启用了csrf检验,
CSRF一般指跨站请求伪造攻击,
要在Eureka Server端配置关闭csrf检验,
否则Eureka Client无法访问注册中心,
新建类WebSecurityConfig.java如下:
package com.yuwen.spring.eureka.config;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {    @Override    protected void configure(HttpSecurity http) throws Exception {        http.csrf().disable();        super.configure(http);    }}6.Eureka Client配置用户名密码

客户端要访问配置中心,
需要修改application.yml,
配置上面的用户名密码:
eureka:  client:    service-url:      defaultZone: http://eureka:eureka123456@localhost:7001/eureka目前配置文件支持如下格式配置用户名密码:
http://user:password@localhost:7001/eureka,
HTTP基本身份认证将自动添加到Eureka Client。
对于更复杂的需求,
可以创建类型为DiscoveryClientOptionalArgs的@Bean,
并将ClientFilter实例注入其中。
注意由于Eureka的限制,
不可能支持每台服务器的基本身份认证凭证,
因此集群时只使用找到的第一组身份认证凭证。
7.参考文章

Spring cloud eureka 安全认证基本配置
1.3. Authenticating with the Eureka Server

Java吧 收集整理 java论坛 www.java8.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表