apollo内置eureka dashboard授权登录

ops/2025/1/15 19:38:11/

要确保访问Eureka Server时要求输入账户和密码,需要确保以下几点:

  1. 确保 eurekaSecurityEnabled 配置为 true:这个配置项控制是否启用Eureka的安全认证。如果它被设置为 false,即使配置了用户名和密码,也不会启用安全认证。

  2. 确保 username 和 password 配置正确:你需要确保在配置文件中正确设置了 apollo.eureka.server.security.username 和 apollo.eureka.server.security.password

  3. 优化 configure(HttpSecurity http) 方法:当前的配置允许所有请求通过 permitAll(),即使启用了安全认证,某些路径仍然可以匿名访问。你需要调整这些路径的权限。

优化前的代码,此代码为apollo-configserver的2.x.x以上代码

  @Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable();http.httpBasic();if (eurekaSecurityEnabled) {http.authorizeRequests().antMatchers("/eureka/apps/**", "/eureka/instances/**", "/eureka/peerreplication/**").hasRole(EUREKA_ROLE).antMatchers("/**").permitAll();}}

如果不修改访问eureka dashboard时,直接进入到dashboard界面,安全合规审核不过,要求增加账户审核。

优化后的代码:

  @Overrideprotected void configure(HttpSecurity http) throws Exception {http.csrf().disable();http.httpBasic();if (eurekaSecurityEnabled) {http.authorizeRequests().antMatchers("/","/eureka/apps/**","/eureka/instances/**","/eureka/peerreplication/**").hasRole(EUREKA_ROLE).antMatchers("/**").permitAll();}}

在 application.yml添加如下内容:

apollo:eureka:server:security:username: demo1password: demo1enabled: true

修改的作用

  1. 根路径 (/) 需要认证

    • 当用户访问根路径(例如 http://localhost:8080/)时,会要求输入用户名和密码。

    • 满足合规要求,用户访问Eureka Dashboard时进行身份验证。

  2. Eureka相关路径需要认证

    • /eureka/apps/**/eureka/instances/** 和 /eureka/peerreplication/** 这些路径仍然需要认证。

  3. 其他路径允许匿名访问/** 表示所有其他路径允许匿名访问。如果希望所有路径都需要认证,可以将 /** 改为 .anyRequest().authenticated()。代码如下修改:

    protected void configure(HttpSecurity http) throws Exception {http.csrf().disable();http.httpBasic();if (eurekaSecurityEnabled) {http.authorizeRequests().antMatchers("/", "/eureka/apps/**","/eureka/instances/**","/eureka/peerreplication/**").hasRole(EUREKA_ROLE) .anyRequest().authenticated(); } else {http.authorizeRequests().anyRequest().permitAll(); }
    }

    增加项动启:执行后,如下:不然就直接进入到dashboard页面,这在安全合规上通过不了


http://www.ppmy.cn/ops/150368.html

相关文章

青少年编程与数学 02-006 前端开发框架VUE 21课题、路由控制

青少年编程与数学 02-006 前端开发框架VUE 21课题、路由控制 一、路由二、路由控制三、应用示例1. 安装Vue Router2. 设置路由3. 在主项目中引入路由4. 创建视图和组件5. 运行项目 课题摘要:本文介绍了Vue项目中的路由控制,包括安装Vue Router、定义路由组件、配置路…

数据取证与恢复:ElcomSoft System Recovery,什么是冷系统分析?

ElcomSoft 系列取证软件 ElcomSoft 系列取证软件支持从计算机和移动设备进行数据提取、解锁文档、解密压缩文件、破解加密容器、查看和分析证据。 计算机和手机取证的完整集合硬件加速解密最多支持10,000计算机协同工作包含全部移动设备数据提取解密分析的相关工具移动设备逻…

Spring Boot 应用开发入门

一、Spring Boot简介 Spring Boot 是一个基于 Spring 框架的开源 Java 基础框架,它简化了基于 Spring 的应用开发。Spring Boot 提供了一种快速、便捷的方式来创建独立、生产级的基于 Spring 框架的应用程序。它通过提供一系列的“启动器”依赖,帮助开发…

软件项目开发关键节点——开源合规扫描

软件项目开发关键节点——开源合规扫描 一、开源合规扫描说明二、扫描的时间节点三、开源合规扫描的目的3.1 确保合规性:3.2 自动化合规检查:3.3 提高透明度:3.4 确保代码质量: 四、开源合规扫描的内容4.1 识别项目中的开源组件&a…

WPF中组件之间传递参数的方法研究

在 WPF (Windows Presentation Foundation) 中,组件(或称为控件)之间传递参数的方法有很多种。不同的传递方式适用于不同的应用场景,具体选择取决于应用需求、性能、可维护性等因素。以下是几种常见的传递参数的方法,并…

初学stm32 --- ADC采集内部温度传感器

STM32内部温度传感器简介 温度计算方法(F1) 温度计算式子:

深度学习学习笔记(第29周)

目录 摘要 Abstracts 1. 概述 2. Better 2.1 Batch Normalization(批归一化) 2.2 High Resolution Classifier(高分辨率分类器) 2.3 Convolutional With Anchor Boxes(带有Anchor Boxes的卷积) 2.4…

WPF中Grid自动布局

控件功能 根据自定义行和列,快速进行排列,能够进行自定义控件间距离,减少元素进行定义间距,同时能更好的维护界面排序。 代码部分 using System.ComponentModel; using System.Windows; using System.Windows.Controls;namespa…