一起来学 SpringBoot 2.x | 第十五篇:actuator 与 spring-boot-admin 可以说的秘密

SpringBoot安全漏洞解析与防御实践:从信息泄露到RCE攻击链 在Java Web开发领域,应用安全是构建健壮系统的基石。其核心原理在于理解攻击者如何利用框架特性、配置缺陷和依赖漏洞实施入侵。从技术价值看,掌握安全防护能显著降低数据泄露、服务中断等业务风险。常见应用场景包括企业级后台管理系统、金融交易平台和物联网服务端等。本文聚焦SpringBoot框架,深入剖析其常见安全漏洞如信息泄露、依赖风险等,并提供从开发到部署的纵深防御方案,帮助开发者构建更安全的微服务应用。 阅读详情

点击上方“芋道源码”,选择“置顶公众号”

技术文章第一时间送达!

源码精品专栏

 

来源:http://t.cn/EwMgr3F

  • 什么是SBA

  • 导入依赖

  • 属性配置

  • 描述信息

    • 主函数

    • 测试

  • 总结

  • 说点什么


SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程

一起来学SpringBoot | 第十四篇:强大的 actuator 服务监控与管理 中介绍了actuator 的作用,细心的朋友可能会发现通过http restful api的方式查看信息过于繁琐也不够直观,效率低下,运维人员看到JSON数据更是一脸懵逼,当服务过多的时候查看起来就过于操蛋了,每个服务都需要调用不同的接口来查看监控信息,备受各种困扰因素的我默默翻了下全球最大男性交友平台找到了spring-boot-admin

什么是SBA

SBA 全称 Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目。分为admin-server 与 admin-client 两个组件,admin-server通过采集 actuator 端点数据,显示在 spring-boot-admin-ui 上,已知的端点几乎都有进行采集,通过 spring-boot-admin 可以动态切换日志级别、导出日志、导出heapdump、监控各项指标 等等….

Spring Boot Admin 在对单一应用服务监控的同时也提供了集群监控方案,支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理…

导入依赖

在 pom.xml 中添加 spring-boot-admin 的相关依赖,这里只演示单机版本的,因此就自己监控自己了

<dependencies>
    <!-- 服务端:带UI界面 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.0.0</version>
    </dependency>
    <!-- 客户端包 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.0.0</version>
    </dependency>
    <!-- 安全认证 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <!-- 端点 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- 在管理界面中与 JMX-beans 进行交互所需要被依赖的 JAR -->
    <dependency>
        <groupId>org.jolokia</groupId>
        <artifactId>jolokia-core</artifactId>
    </dependency>
</dependencies>

注意事项

如果要访问info接口想获取maven中的属性内容请记得添加如下内容

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>build-info</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

属性配置

在 application.properties 文件中配置actuator的相关配置,其中info开头的属性,就是访问info端点中显示的相关内容,值得注意的是Spring Boot2.x中,默认只开放了info、health两个端点,剩余的需要自己通过配置management.endpoints.web.exposure.include属性来加载(有include自然就有exclude,不做详细概述了)。这个management.endpoints.web.base-path属性比较重要,因为Spring Boot2.x后每个端点默认的路径是/actuator/endpointId这样一来Spring Boot Admin是无法正常采集的

application.properties

# 描述信息
info.blog-url=http://blog.battcn.com
info.author=Levin
# 如果 Maven 插件没配置此处请注释掉
info.version=@project.version@
info.name=@project.artifactId@
# 选择激活对应环境的配置,如果是dev则代表不用认证就能访问监控页,prod代表需要认证
spring.profiles.active=prod

# 日志文件
logging.file=./target/admin-server.log

# 加载所有的端点/默认只加载了 info / health
management.endpoints.web.exposure.include=*
# 比较重要,默认 /actuator spring-boot-admin 扫描不到
management.endpoints.web.base-path=/
management.endpoint.health.show-details=always

spring.boot.admin.client.url=http://localhost:8080
# 不配置老喜欢用主机名,看着不舒服....
spring.boot.admin.client.instance.prefer-ip=true

application-dev.properties - 空

application-prod.properties

为了安全起见,应采用认证的方式

# 登陆所需的账号密码
spring.security.user.name=battcn
spring.security.user.password=battcn
# 便于客户端可以在受保护的服务器上注册api
spring.boot.admin.client.username=battcn
spring.boot.admin.client.password=battcn
# 便服务器可以访问受保护的客户端端点
spring.boot.admin.client.instance.metadata.user.name=battcn
spring.boot.admin.client.instance.metadata.user.password=battcn

主函数

添加上 @EnableAdminServer 注解即代表是Server端,集成UI的

package com.battcn;

import de.codecentric.boot.admin.server.config.AdminServerProperties;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;


/**
 * @author Levin
 */
@SpringBootApplication
@EnableAdminServer
public class Chapter14Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter14Application.class, args);
    }

    /**
     * dev 环境加载
     */
    @Profile("dev")
    @Configuration
    public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().permitAll()
                    .and().csrf().disable();
        }
    }

    /**
     * prod 环境加载
     */
    @Profile("prod")
    @Configuration
    public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
        private final String adminContextPath;

        public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
            this.adminContextPath = adminServerProperties.getContextPath();
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
            successHandler.setTargetUrlParameter("redirectTo");

            http.authorizeRequests()
                    .antMatchers(adminContextPath + "/assets/**").permitAll()
                    .antMatchers(adminContextPath + "/login").permitAll()
                    .anyRequest().authenticated()
                    .and()
                    .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                    .logout().logoutUrl(adminContextPath + "/logout").and()
                    .httpBasic().and()
                    .csrf().disable();
        }
    }
}

测试

完成准备事项后,启动Chapter14Application 访问 http://localhost:8080/login 看到登陆页面则代表一切正常,接着输入账号密码点击登陆即可…

首页

由于篇幅原因大图就不放太多了,有兴趣的朋友可以直接fork代码运行即可

总结

参考文档:http://codecentric.github.io/spring-boot-admin/2.0.0/

目前很多大佬都写过关于 SpringBoot 的教程了,如有雷同,请多多包涵,本教程基于最新的 spring-boot-starter-parent:2.0.2.RELEASE编写,包括新版本的特性都会一起介绍…

说点什么

全文代码:https://github.com/battcn/spring-boot2-learning/tree/master/chapter14



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:


SpringBoot配置文件加密实战:Jasypt集成与生产环境最佳实践 在软件工程实践中,配置管理是保障应用安全与合规性的基础环节。其核心原理在于将敏感信息(如数据库密码、API密钥)从明文存储转为密文,通过运行时动态解密机制,实现业务代码的无感知透明访问。这项技术的核心价值在于,它能有效防止代码仓库泄露、配置误提交等场景下的敏感信息暴露,是满足等保、GDPR等安全合规要求的必要手段。典型的应用场景包括微服务架构下的配置中心安全存储、CI/CD流水线中的密钥注入以及生产环境运维的权限隔离。本文聚焦于SpringBoot生态,深入解析如何利用Jasypt这一轻量级加密库,结合AE 阅读详情

相关推荐

SpringBoot集成Jasypt实现数据加密实战指南

数据加密是保障系统安全的基础技术,其核心原理是通过加密算法将明文转换为不可读的密文。Jasypt作为Java领域轻量级加密库,支持AES、PBE等主流算法,通过与SpringBoot的深度集成,为配置文件加密提供了开箱即用的解决方案。在实际工程中,Jasypt的配置简单性和高性能特点使其成为微服务架构下敏感信息保护的首选方案,特别适合数据库密码、API密钥等场景的加密需求。本文基于SpringBoot 2.7.x和Jasypt 3.0.4,详细解析从基础集成到生产级应用的全流程实践。

weixin_30455023的博客 407

springboot 监控 Actuator和Admin

一、什么是Actuator Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况。Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。特别对于微...

江城宴的博客 4111

Spring Boot Admin 详解(Spring Boot 2.0,基于 Eureka 的实现)

Spring Boot Admin 用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI。(一)简介Spring Boot Admin 提供了很多功能,如显示 name、id 和 version,显示在线状态,Loggers 的日志级别管理,Threads 线程管理,Environment 管理等。(二)Spring...

永不止步 11万+

SpringBoot整合Actuator 和 Admin实现服务监控功能

SpringBoot整合Actuator 和 Admin实现服务监控功能

H_Q_Li的博客 1289

【信息科学与工程学】【通信工程】【企业网、园区网、数据中心、广域网】各类业务网络及其网络演算算法

企业网络是一个复杂的系统,其业务、人员、流量和安全特征相互交织。下面这张表格梳理了这些核心特征及其关联的数学模型,帮你先建立整体概念。特征维度核心特征关联数学模型/方法业务特征​多样性、服务等级协议、混合云趋势图论(拓扑优化)、排队论(M/M/1)、随机过程(业务到达)、优化理论(资源调度)人员特征​角色权限差异、访问行为随机性、安全意识差异概率统计(行为建模)、随机过程(会话生成)、博弈论(安全策略)、访问控制矩阵流量特征​混合性、突发性、时空规律性、方向性(南北/东西向)泊松过程(短时突发)、重尾分布(

weixin_49199313的博客 890

SpringBoot Admin 使用指南(推荐)

主要介绍了SpringBoot Admin 使用指南(推荐),Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序,非常具有实用价值,需要的朋友可以参考下

玩转SpringBoot 2.x 之搭建 Actuator 和 SpringBoot Admin监控篇

1 搭建SpringBoot Admin 服务端 创建SpringBoot 项目并引入SpringBoot Admin 服务端的依赖。 <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server</artifactId&...

程序员小奎的博客 3323

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 765

Spring Boot 接入大众点评 CAT系统监控

主要参考: 单体:http://www.2cto.com/os/201507/422030.html 集群:https://www.cnblogs.com/lori/p/5382304.html 1.git 载入https://github.com/dianping/cat 2.构建 mvn clean install -DskipTests

silyvin 1万+

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1871

学习笔记9--智能驾驶的功能安全设计之功能安全设计

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。此专栏是关于《自动驾驶系统设计及应用》书籍的笔记.

FUXI_Willard 1798

一起来学SpringBoot | 第十五篇:actuator与spring-boot-admin 可以说的秘密

SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程 一起来学SpringBoot | 第十四篇:强大的 actuator 服务监控与管理 中介绍了actuator 的作用,细心的朋友可能会发现通过http...

唐亚峰 3579

探索niri:让你的Linux桌面布局无拘无束

niri是一款基于Wayland的滚动平铺合成器,采用创新的窗口管理方式。它将窗口排列为向右无限延伸的条目,支持独立显示器布局和动态垂直工作区,确保多任务操作流畅性。核心功能包括概要视图、截图界面、屏幕投射、手势操作、窗口分组等,并支持自定义布局和动画效果。niri具备良好的稳定性,兼容xwayland-satellite工具,灵感来自PaperWM但突破了GNOME限制。该项目为追求高效桌面管理的用户提供了全新解决方案,欢迎加入社区交流体验。

weixin_44626085的博客 1818

SpringCloud集成Elasticsearch实战与性能优化

Elasticsearch作为分布式搜索引擎,通过倒排索引机制实现毫秒级数据检索,解决了传统关系型数据库在模糊查询和大数据量场景下的性能瓶颈。其分布式架构支持水平扩展,配合分片与副本机制保障高可用性。在微服务体系中,SpringCloud与Elasticsearch的典型集成场景包括商品搜索、日志分析和实时监控等。通过合理配置索引映射、查询优化和集群调优,可显著提升系统性能。本文结合电商订单查询等实际案例,详解如何避免版本冲突、处理深度分页等工程实践问题,并分享生产环境中的性能监控与故障排查经验。

weixin_30681615的博客 465

ArcMap新手必看:5分钟搞定3D地形图制作(附DEM和影像图处理技巧)

本文为ArcMap新手提供了制作3D地形图的快速入门指南。文章详细解析了DEM(数字高程模型)与影像图作为“骨架”与“皮肤”的核心关系,并重点讲解了数据预处理、坐标统一、按掩膜提取等关键技巧,帮助用户在ArcScene中高效构建并优化三维地形场景,实现从平面到立体的专业可视化。

weixin_29281915的博客 108

Android15音频进阶之音效配置与解析(一百三十一)

本篇目的:Android15音频进阶之音效配置与解析。

Android系统攻城狮 2147

从零搭建开发脚手架 Spring Boot集成CAT实现APM和链路监控、业务埋点

文章目录简介Cat 简介Cat 产品价值Cat 优势服务端部署准备阶段CAT安装环境安装CAT集群步骤概览具体实操1.初始化数据库2.创建目录和配置文件3.CATwar部署4.修改客户端路由配置5.修改服务器配置6.验证客户端集成1.maven依赖2.配置client.xml3.配置项目名称4.测试验证功能介绍核心功能TransactionEventProblemHeartbeatJVM相关指标系统指标Business实战集成SpringBoot 集成CatFilterLogback配置消息属性 简介 Ca

laker的博客 2765

基于Dify实现对Excel的数据分析

在dify部署完成后,大家就可以基于此进行各种应用场景建设,目前dify支持聊天助手(包括对话工作流)、工作流、agent等模式的场景建设,我们在日常工作中经常会遇到各种各样的数据清洗、格式转换处理、数据统计成图等数据分析工作,本次主要基于对话工作流模式对Excel文件、csv文件进行解析处理,并进行成图等数据分析工作。主要用到的插件有LLM节点,文档提取器、参数提取器、自定义代码节点、echart插件等。实现解析Excel数据,经过上述不同节点的处理分析流程,最终实现数据统计图展示。

hhue2007的专栏 1万+

Actuator监控信息泄露

springboot 监控 Actuator springboot 提供了对项目的监控功能。 1.首先添加依赖包 org.springframework.boot spring-boot-starter-actuator 2.1.3.RELEASE 2.浏览器访问 http://127.0.0.1:8080/actuator/health 访问项目监控需要加前缀 /actuator 因为actuator默认只支持端点 /health、/info 所以访问 /env 会出现

weixin_42090162的博客 2440

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 845

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

spring boot 安全关闭服务,结合spring security

参考博客文档Spring Boot的应用启动与关闭Windows下使用CURL命令curl 命令使用spring boot 官方文档项目中已有spring security 配置的情况下,通过curl命令安全关闭spring boot服务。pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifact

sitaryo的博客 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

springboot2.x adminUI监控

1.server端 pom.xml &lt;parent&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; &lt;version&gt;2.1.1.RELEASE&lt;...

这儿很凉的博客 3227

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

24.Spring-Boot-Actuator与Spring-Security整合应用

文章是指,在生产环境不是每一个用户都可以查看监控springboot应用的运行情况,通过整合spring security配置指定用户访问Actuator。 Spring Boot包含了一些额外的特性,可以帮助您在应用程序在上生产时监控和管理应用程序。您可以选择使用HTTP管理监视您的应用程序。端点,带有JMX,甚至是远程shell (SSH或Telnet)。审计、健康和度...

盲目的拾荒者的博客 6186
上一篇: 如何用九条命令在一分钟内检查 Linux 服务器性能?
下一篇: 五款主流 Linux 发行版性能对比,稳而不强?
公众号-芋道源码
博客等级 码龄10年 1636粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值