Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Eureka安全访问

Eureka安全访问

原创
作者头像
3号攻城狮
发布于 2018-05-13 06:53:55
发布于 2018-05-13 06:53:55
3.7K3
举报

背景

在使用注册服务的时候,我们启动了Eureka Server,然后在浏览器中输入http://ip:port/后,直接回车,就进入了Spring Cloud的服务治理页面。

在公网部署应用存在以下问题:

1.普通用户可以直接访问我们的服务治理页面

2.普通用户可以将自己的服务注册到生成环景

解决方案

添加spring-security支持

代码语言:txt
AI代码解释
复制
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-security</artifactId>  
</dependency> 

在配置文件bootstrap.yml加入安全认证

代码语言:txt
AI代码解释
复制
spring:
  profiles: default
  cloud:
    config:
      enabled: false
# 安全认证的配置  
security:  
  basic:  
    enabled: true  
  user:  
    name: pikachu  # 用户名  
    password: pikachu   # 用户密码
eureka:
  instance:
    preferIpAddress: true
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 3
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: ${EUREKA_DEFAULT_ZONE:http://pikachu:pikachu@localhost:8761/eureka/ }
    registryFetchIntervalSeconds: 1
  server:
    evictionIntervalTimerInMs: 1000

关键配置

代码语言:txt
AI代码解释
复制
security:  
  basic:  
    enabled: true  
  user:  
    name: pikachu  # 用户名  
    password: pikachu   # 用户密码
代码语言:txt
AI代码解释
复制
defaultZone: ${EUREKA_DEFAULT_ZONE:http://pikachu:pikachu@localhost:8761/eureka/}

启动应用查看效果

image.png
image.png

输入密码后可以正常访问页面

image.png
image.png

正常服务注册效果比较

使用默认配置做服务注册,可以看到服务注册失败。

image.png
image.png

调整配置后可以看到,服务正常启动

image.png
image.png

正常注册

image.png
image.png

优化

上述解决方案虽然解决了我们公网部署,生产环境部署的安全访问问题。但是针对团队内部的权限依然没有管理好。

通常我们的服务配置存放在两个地方:

代码语言:txt
AI代码解释
复制
1.application.yml
2.bootstrap.yml

项目都能从两个文件中读取配置。但是bootstrap.yml优先于application.yml加载,会初始化系统的环境配置信息。

当使用Spring Cloud时,通常从服务器加载不同环境的配置数据。为了获取URL(和其他连接配置,如密码等),我们就需要一个较早的或“bootstrap”配置。因此,我们可以将配置服务器属性放在bootstrap.yml中,该属性用于加载实际配置数据(通常覆盖application.yml 如果存在中的内容)。

Spring cloud 我们通常都会有config服务。通过config服务读取各个环境的配置信息,所有我们只需要在bootstrap.yml中配置信息来源。将具体的配置写入到application.yml中。

bootstrap.yml如下

代码语言:txt
AI代码解释
复制
spring:
  profiles: uat
  cloud:
    config:
      label: master
      name: cloud-demo-server
      discovery:
        serviceId: cloud-config-server
        enabled: true
      failFast: true
      retry:
        maxAttempts: 32
        multiplier: 1.5
        maxInterval: 10000

application.yml如下

代码语言:txt
AI代码解释
复制
spring:
  profiles: default
  cloud:
    config:
      enabled: false
# 安全认证的配置  
security:  
  basic:  
    enabled: true  
  user:  
    name: pikachu  # 用户名  
    password: pikachu   # 用户密码
eureka:
  instance:
    preferIpAddress: true
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 3
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: ${EUREKA_DEFAULT_ZONE:http://pikachu:pikachu@localhost:8761/eureka/ }
    registryFetchIntervalSeconds: 1
  server:
    evictionIntervalTimerInMs: 1000

当然,在一些情况上不用我们不用那么区分这两个文件,只需要使用application文件即可,把全部选项都写在这里,效果基本是一致的,在不考虑上面的加载顺序覆盖的问题上。

总结

通过以上配置我们基本能解决Eureka的安全访问问题:

1.普通用户可以直接通过域名访问我们的服务治理页面;

2.普通用户可以将自己的服务注册到生产环境;

3.团队内部成员权限隔离

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
3 条评论
热度
最新
谢谢分享
谢谢分享
回复回复点赞举报
之前没有了解过Eureka,现在就去试试
之前没有了解过Eureka,现在就去试试
回复回复点赞举报
代码都贴出来 想必是极好的哈哈
代码都贴出来 想必是极好的哈哈
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
推荐8款 .NET 开源、免费、实用的 Windows 效率软件
今天大姚给大家推荐8款基于 .NET 开源、免费、实用的 Windows 效率软件,开发工作提升利器,希望可以帮助到有需要的小伙伴。
郑子铭
2025/04/30
1550
推荐8款 .NET 开源、免费、实用的 Windows 效率软件
一款开源的通用PDF处理神器,功能强悍!
PDF是一种功能强大且广泛应用的电子文档格式,适用于各种文档管理和共享需求。由于PDF文档注重阅读而非编辑,很多文档处理会让我们非常头疼。
程序员皮皮林
2024/09/27
3290
『GitHub项目圈选09』推荐5款本周大佬都在用的开源项目
Stirling-PDF 是一款基于 Web 的 开源 PDF 操作工具,是一个高效而强大的本地托管应用程序,可提供广泛的 PDF 文件处理功能。
Python兴趣圈
2024/01/05
5670
『GitHub项目圈选09』推荐5款本周大佬都在用的开源项目
解锁便捷工具世界——帮小忙在线工具箱平台,提供你所需的一切
帮小忙在线工具箱平台是一个集合了各种实用工具的综合平台。无论你是需要处理图片、转换文档格式、进行数据换算,还是寻找壁纸、查询垃圾分类等,这个平台都能满足你的需求。本文将详细介绍平台提供的部分工具,让你对它的强大功能有更清晰的了解。
程序那些事儿
2023/11/22
6250
解锁便捷工具世界——帮小忙在线工具箱平台,提供你所需的一切
『GitHub项目圈选24』盘点本周 火火火 的开源项目!
FreeCodeCamp 是一款开源的在线编程学习平台,是GitHub全球排行最高的项目,Star达400K。
Python兴趣圈
2024/09/02
3260
『GitHub项目圈选24』盘点本周 火火火 的开源项目!
『GitHub项目圈选08』推荐5款本周使用率超高的开源项目
项目地址:https://github.com/open-mmlab/Amphion
Python兴趣圈
2023/12/30
7400
『GitHub项目圈选08』推荐5款本周使用率超高的开源项目
『GitHub项目圈选16』推荐5款本周 大佬狂爱 的开源项目
open-interpreter 是一款在本地实现的开源OpenAI的代码解释器。
Python兴趣圈
2024/02/28
4720
『GitHub项目圈选16』推荐5款本周 大佬狂爱 的开源项目
『GitHub项目圈选10』推荐5款本周 实用给力 的开源项目
SuperDuperDB 是一个简单而强大的AI开发和部署框架,它为开发人员提供了一个灵活的数据使用途径。
Python兴趣圈
2024/01/12
5010
『GitHub项目圈选10』推荐5款本周 实用给力 的开源项目
推荐8款 .NET 开源、免费、实用的 Windows 效率软件
今天大姚给大家推荐8款基于 .NET 开源、免费、实用的 Windows 效率软件,开发工作提升利器,希望可以帮助到有需要的小伙伴。
追逐时光者
2025/03/26
2300
推荐8款 .NET 开源、免费、实用的 Windows 效率软件
『GitHub项目圈选22』推荐5款 深受好评 的AI开源项目
OpenGlass 这个项目可以让你使用不到 25 美元的现成组件,即可将任何眼镜变成可破解的智能眼镜。
Python兴趣圈
2024/05/14
9960
『GitHub项目圈选22』推荐5款 深受好评 的AI开源项目
吐血推荐,程序员的神级工具箱!
讲真,本来标题想用“神级”程序员的工具箱,但一想,我这么普通,凭什么这么自信😁,于是就默默地把标题换成了程序员的神级工具箱。 千万不要白嫖,真香警告⚠️ 工欲善其事必先利其器,工具对于程序员来说,简直就是神兵利器。 开发工具 Intellij IDEA 我妹最近在家上网课,于是我就勉为其难地偷偷听了几节课。我发现,他们学校的老师仍然比较喜欢用 Eclipse,也推荐了 Intellij IDEA,只不过教材上一直用的是 Eclipse,所以也就没办法切换,估计这种情况还会持续很长时间。 我也是从 Eclip
沉默王二
2021/09/24
2.6K0
5 个不错的开源项目!最后一个强烈推荐
项目介绍 :基于 JavaFX 开发的文本编辑器,供了完善的文本编辑和查看功能,支持 Mac / Windows / Linux。
程序员鱼皮
2023/12/02
9220
5 个不错的开源项目!最后一个强烈推荐
『GitHub项目圈选20』推荐5款本周 火火火 的开源项目
ComfyUI-Workflows-ZHO 是一款 ComfyUI 工作流集合,由 AI领域大佬 ZHO 开源出来的,最近深受专家博主和AI绘画爱好者的喜爱。
Python兴趣圈
2024/03/25
3700
『GitHub项目圈选20』推荐5款本周 火火火 的开源项目
『GitHub项目圈选07』推荐5款超实用的开源项目
FreeControl 是一款开源的手机远程控制工具,用户可以高效的进行远程的手机管理,支持用户在线进行分辨率、帧数等参数的修改和设置,支持有线和无线的两种连接方式,是用户远程控制手机不可缺少的一款软件。
Python兴趣圈
2023/12/21
8140
『GitHub项目圈选07』推荐5款超实用的开源项目
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
Screenity 是一款功能丰富的 Chrome 屏幕和摄像机记录器。为您的屏幕添加注释以提供反馈、强调您的点击、编辑您的录音等。
Python兴趣圈
2024/03/18
4490
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
推荐个腾讯开源的github项目,足够惊艳
不知道看到这篇文章的你是否有用到markdown,如果有,我建议你看完这篇文章,如果没有,那么我建议你看下这篇文章,或许你以后也会使用markdown来编辑文本。
大侠之运维
2024/09/14
2660
『GitHub项目圈选27』推荐3款本周 有意思 的开源工具
GOT-OCR2.0 是一款开源强大的端到端 OCR 模型,不仅支持传统的场景文本和文档识别,还能处理乐谱、图表、甚至复杂的数学公式!
Python兴趣圈
2024/09/23
2090
『GitHub项目圈选27』推荐3款本周 有意思 的开源工具
推荐3个腾讯实用开源的GitHub项目
重点聚焦清理功能,对上百款软件提供定制化的清理方案,提供专业的清理建议,帮助用户轻松完成一键式的清理。
开源日记
2023/03/10
6080
推荐3个腾讯实用开源的GitHub项目
『GitHub项目圈选21』推荐5款本周 标星优秀 的AI开源项目
open-webui 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持各种 LLM 运行程序,包括 Ollama 和 OpenAI 兼容的 API。
Python兴趣圈
2024/04/13
1.2K0
『GitHub项目圈选21』推荐5款本周 标星优秀 的AI开源项目
10K+ Star!下一代终端神器,用完爱不释手!
有人说,我们程序猿最常用的就是两个工具:代码编辑器和终端。不知道你们是不是这样,反正大叔是被说中了~~
永恒君
2023/02/20
2.1K0
10K+ Star!下一代终端神器,用完爱不释手!
推荐阅读
相关推荐
推荐8款 .NET 开源、免费、实用的 Windows 效率软件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档