当前位置: 首页 > article >正文

Spring Boot Admin Server 2.3.1 保姆级搭建教程:从零到一,顺便搞定安全登录

Spring Boot Admin Server 2.3.1 零基础实战从环境搭建到安全防护全解析当你面对十几个微服务实例时是否经常为查看日志、监控状态而频繁切换终端Spring Boot Admin 就像给你的微服务集群装上了全景天窗一站式解决所有监控管理需求。今天我们就从零开始手把手搭建一个带安全认证的Admin Server让你告别混乱的终端窗口。1. 环境准备与项目初始化在开始之前确保你的开发环境满足以下条件JDK 1.8或更高版本Maven 3.5IDE推荐IntelliJ IDEA或VS CodeSpring Boot 2.3.x版本与Admin 2.3.1兼容常见踩坑点很多新手会忽略版本兼容性问题。Spring Boot Admin 2.3.1需要配合Spring Boot 2.3.x使用如果使用Spring Boot 2.4可能会出现奇怪的兼容性问题。创建一个标准的Spring Boot项目这里我们使用Spring Initializr快速生成curl https://start.spring.io/starter.zip \ -d dependenciesweb \ -d typemaven-project \ -d languagejava \ -d bootVersion2.3.12.RELEASE \ -d groupIdcom.example \ -d artifactIdadmin-server \ -o admin-server.zip解压后我们需要手动添加Spring Boot Admin的依赖。修改pom.xml文件properties spring-boot-admin.version2.3.1/spring-boot-admin.version /properties dependencyManagement dependencies dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-dependencies/artifactId version${spring-boot-admin.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement dependencies dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-starter-server/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-security/artifactId /dependency /dependencies提示这里使用了dependencyManagement来管理版本确保所有相关依赖版本一致避免潜在的冲突。2. 核心配置与启动类优化创建好项目后我们需要配置Admin Server的核心功能。首先在启动类上添加EnableAdminServer注解package com.example.admin; import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; EnableAdminServer SpringBootApplication public class AdminServerApplication { public static void main(String[] args) { SpringApplication.run(AdminServerApplication.class, args); } }接下来配置application.yml文件server: port: 8080 spring: boot: admin: ui: title: 微服务监控中心 context-path: /admin配置解析server.port指定服务端口spring.boot.admin.ui.title自定义管理界面标题spring.boot.admin.context-path设置Admin的上下文路径避免与其他端点冲突启动项目后访问http://localhost:8080/admin你应该能看到Admin的登录页面此时还没有配置安全认证可以直接访问。3. 安全防护配置实战一个没有安全保护的监控系统等于敞开大门的数据中心。我们来为Admin Server添加基础的安全认证。首先在application.yml中添加基础安全配置spring: security: user: name: admin password: securePassword123!然后创建安全配置类package com.example.admin.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.context.annotation.Configuration; 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; Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { private final AdminServerProperties adminServer; public SecurityConfig(AdminServerProperties adminServer) { this.adminServer adminServer; } Override protected void configure(HttpSecurity http) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter(redirectTo); successHandler.setDefaultTargetUrl(adminServer.path(/)); http.authorizeRequests() .antMatchers(adminServer.path(/assets/**)).permitAll() .antMatchers(adminServer.path(/login)).permitAll() .anyRequest().authenticated() .and() .formLogin().loginPage(adminServer.path(/login)) .successHandler(successHandler).and() .logout().logoutUrl(adminServer.path(/logout)) .and() .httpBasic().and() .csrf().disable(); } }安全配置要点解析允许静态资源/assets/**无需认证登录页面/login开放访问其他所有请求需要认证配置了登录成功后的跳转逻辑提供了/logout端点暂时禁用了CSRF保护生产环境应根据需求配置注意在实际生产环境中你应该使用更复杂的安全策略比如密码加密存储多因素认证基于角色的访问控制适当的CSRF保护4. 功能验证与问题排查完成上述配置后我们需要验证各个功能是否正常工作。以下是验证步骤基础访问测试访问http://localhost:8080/admin应该重定向到登录页面使用配置的用户名密码应该能成功登录登录后应能看到Admin的主界面安全验证直接访问http://localhost:8080/admin/api/applications应该返回401未授权登录后访问同一地址应返回200和JSON数据常见问题排查问题现象可能原因解决方案无法访问/login页面安全配置路径错误检查adminServer.path()是否正确登录后无限循环成功处理器配置错误检查successHandler的配置静态资源加载失败安全配置未放行确保/assets/**在permitAll()中如果遇到问题可以启用调试日志帮助排查logging: level: org.springframework.security: DEBUG de.codecentric.boot.admin: DEBUG5. 高级配置与优化建议基础功能运行正常后我们可以考虑一些增强配置通知配置当有服务上下线时发送通知spring: boot: admin: notify: mail: enabled: true to: adminexample.com from: monitorexample.com健康检查优化Bean public HealthIndicator customHealthIndicator() { return () - Health.up().withDetail(app, admin-server).build(); }内存优化配置management: endpoint: health: show-details: always endpoints: web: exposure: include: *对于生产环境还应该考虑配置HTTPS设置适当的会话超时实现审计日志定期备份监控数据6. 客户端接入指南搭建好Admin Server后微服务客户端需要以下配置来接入监控在客户端pom.xml中添加依赖dependency groupIdde.codecentric/groupId artifactIdspring-boot-admin-starter-client/artifactId version2.3.1/version /dependency配置客户端application.ymlspring: boot: admin: client: url: http://localhost:8080/admin username: admin password: securePassword123! management: endpoints: web: exposure: include: * endpoint: health: show-details: always验证客户端是否注册成功登录Admin Server控制台在Applications列表中应该能看到新注册的服务点击服务名可以查看详细监控信息客户端常见问题确保客户端的Spring Boot版本与Admin Server兼容检查网络连通性确保客户端能访问Admin Server验证客户端暴露的端点是否完整

相关文章:

Spring Boot Admin Server 2.3.1 保姆级搭建教程:从零到一,顺便搞定安全登录

Spring Boot Admin Server 2.3.1 零基础实战:从环境搭建到安全防护全解析 当你面对十几个微服务实例时,是否经常为查看日志、监控状态而频繁切换终端?Spring Boot Admin 就像给你的微服务集群装上了"全景天窗",一站式解…...

BlenderKit插件Windows平台pwd模块缺失问题的深度技术解析与解决方案

BlenderKit插件Windows平台pwd模块缺失问题的深度技术解析与解决方案 【免费下载链接】BlenderKit Official BlenderKit add-on for Blender 3D. Documentation: https://github.com/BlenderKit/blenderkit/wiki 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderKit …...

终极解密指南:如何快速免费解密RPG Maker加密文件?

终极解密指南:如何快速免费解密RPG Maker加密文件? 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_mirr…...

抖音内容采集与管理的完整解决方案:douyin-downloader 技术深度解析

抖音内容采集与管理的完整解决方案:douyin-downloader 技术深度解析 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…...

如何快速部署HsMod:基于BepInEx的炉石传说终极性能优化插件指南

如何快速部署HsMod:基于BepInEx的炉石传说终极性能优化插件指南 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是一款基于BepInEx框架开发的炉石传说高级功能增强插件&am…...

Splatoon插件架构革新:FFXIV高难度副本智能导航与机制破解技术实现

Splatoon插件架构革新:FFXIV高难度副本智能导航与机制破解技术实现 【免费下载链接】Splatoon An accessibility tool to assist in gameplay and compensate for human imperfections. 项目地址: https://gitcode.com/gh_mirrors/spl/Splatoon Splatoon作为…...

别再只盯着信号强度了!用Wi-Fi CSI数据玩点新花样:从手势识别到室内定位

别再只盯着信号强度了!用Wi-Fi CSI数据玩点新花样:从手势识别到室内定位 当你用手机查看Wi-Fi信号强度时,那个小小的"满格"图标背后隐藏着远比想象丰富的信息。传统RSSI(接收信号强度指示)就像用黑白电视看世…...

从VCU到MCU:一份给新能源汽车三电工程师的HiL测试避坑指南(含BMS/MCU/VCU实战)

从VCU到MCU:新能源汽车三电HiL测试的工程实践与深度优化 当新能源汽车的VCU在HiL测试中误判了电机转速信号,或是BMS在极端工况下出现SOC跳变,这些看似微小的偏差往往会在实车测试中引发连锁反应。三电系统的HiL测试不同于传统ECU验证&#xf…...

终极Windows搜索革命:EverythingToolbar自定义过滤器完整指南

终极Windows搜索革命:EverythingToolbar自定义过滤器完整指南 【免费下载链接】EverythingToolbar Everything integration for the Windows taskbar. 项目地址: https://gitcode.com/gh_mirrors/eve/EverythingToolbar 还在为Windows文件搜索效率低下而烦恼…...

实战复盘:如何用华为IGMP Snooping优化酒店IPTV网络,解决卡顿与广播风暴

华为IGMP Snooping实战:酒店IPTV网络优化全记录 去年夏天,我接手了一个五星级酒店的IPTV网络改造项目。客户反映客房电视经常出现卡顿、花屏现象,尤其在晚间高峰时段问题更加严重。更棘手的是,酒店内部办公网络也频繁出现响应迟缓…...

构建开源RDP服务器:xrdp远程桌面架构设计与性能优化指南

构建开源RDP服务器:xrdp远程桌面架构设计与性能优化指南 【免费下载链接】xrdp xrdp: an open source RDP server 项目地址: https://gitcode.com/gh_mirrors/xrd/xrdp xrdp作为一款开源的远程桌面协议服务器,为Linux系统提供了完整的RDP服务端解…...

ISE 软件高效工作流揭秘:如何用文件夹管理与模块化思维提升FPGA开发效率

ISE软件高效工作流揭秘:如何用文件夹管理与模块化思维提升FPGA开发效率 当FPGA项目从简单的实验性代码演变为包含数十个模块的复杂系统时,许多工程师会突然发现自己陷入了一个混乱的泥潭:找不到最新版本的约束文件、仿真激励与设计文件混杂、…...

从8421BCD码四舍五入电路设计,聊聊数字系统中“非法状态”的处理策略与报警设计

从8421BCD码四舍五入电路设计,聊聊数字系统中“非法状态”的处理策略与报警设计 在数字电路设计的实践中,工程师们常常需要面对一个看似简单却至关重要的问题:当输入信号超出预期范围时,系统该如何应对?这个问题在8421…...

Mac Mouse Fix终极指南:让普通鼠标超越苹果触控板的3个核心技巧

Mac Mouse Fix终极指南:让普通鼠标超越苹果触控板的3个核心技巧 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款…...

Arduino UNO变身迷你信号发生器:基于MCP4725 DAC的正弦波/三角波生成全攻略

Arduino UNO与MCP4725 DAC打造迷你信号发生器实战指南 在电子制作和音频实验领域,信号发生器是不可或缺的基础工具。传统台式信号发生器虽然功能强大,但价格昂贵且体积庞大。本文将展示如何用Arduino UNO搭配MCP4725 DAC模块,打造一个成本不到…...

GenUI:从“文本对话”到“可操作界面”的范式转移

写在前面假如我问你:“帮我推荐几双500元以下的跑鞋。”传统AI会回复一段文字:“推荐李宁超轻系列,价格XXX;安踏氢跑系列……”你读完,再去电商App搜索、筛选、下单。整个过程在“读—搜—筛”之间反复跳转。但如果AI直…...

别再只用默认图标了!手把手教你用ECharts自定义地图点样式与交互式图例(附完整Vue项目代码)

别再只用默认图标了!手把手教你用ECharts自定义地图点样式与交互式图例(附完整Vue项目代码) 当我们需要在地图上展示业务网点分布、事件热力或区域统计数据时,ECharts无疑是前端开发者的首选工具。但你是否厌倦了千篇一律的圆形标…...

别再死记硬背了!用MobileNet里的Depthwise Convolution,我彻底搞懂了轻量化网络的设计精髓

深度可分离卷积实战:从MobileNet看轻量化网络的底层逻辑 第一次接触MobileNet时,我被它的轻量化设计震撼了——在保持相当精度的前提下,参数量只有传统卷积网络的几分之一。直到拆解了Depthwise Convolution(深度可分离卷积&#…...

OpenHarmony:Docker编译环境参考资料

OpenHarmony的Docker编译环境,可以参考如下官网: https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/gettools-acquire.md...

如何快速掌握JSON编辑器:React开发者的终极指南

如何快速掌握JSON编辑器:React开发者的终极指南 【免费下载链接】jsoneditor-react react wrapper implementation for https://github.com/josdejong/jsoneditor 项目地址: https://gitcode.com/gh_mirrors/js/jsoneditor-react JSONEditor-React 是一个专门…...

6自由度KUKA机械臂ROS自主抓取系统:从运动学建模到工业级部署的完整指南

6自由度KUKA机械臂ROS自主抓取系统:从运动学建模到工业级部署的完整指南 【免费下载链接】pick-place-robot Object picking and stowing with a 6-DOF KUKA Robot using ROS 项目地址: https://gitcode.com/gh_mirrors/pi/pick-place-robot 在智能制造和工…...

抖音无水印下载器:3分钟搞定批量下载的终极方案

抖音无水印下载器:3分钟搞定批量下载的终极方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

别再纠结选哪种了!立体视觉、结构光、TOF深度相机,看完这篇保姆级对比就知道你的项目该用谁

深度相机技术选型实战指南:立体视觉、结构光与TOF的黄金分割点 当你的机器人项目需要一双"慧眼"来感知三维世界时,摆在面前的技术选项往往令人眼花缭乱。市面上主流的深度感知方案——立体视觉、结构光和TOF,就像三种不同性格的助手…...

10分钟训练AI歌手:开源变声框架RVC-WebUI全解析

10分钟训练AI歌手&#xff1a;开源变声框架RVC-WebUI全解析 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-We…...

从零到一:构建支持FCM推送的Android应用实战指南

1. 为什么需要FCM推送&#xff1f; 移动应用推送功能就像餐厅的叫号系统——没有它&#xff0c;用户就不知道自己的"菜品"&#xff08;新消息/内容&#xff09;是否已经准备好。FCM&#xff08;Firebase Cloud Messaging&#xff09;作为Google官方推荐的推送解决方…...

QQ空间备份工具:将青春记忆永久保存到本地的完整指南

QQ空间备份工具&#xff1a;将青春记忆永久保存到本地的完整指南 【免费下载链接】QZoneExport QQ空间导出助手&#xff0c;用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件&#xff0c;便于迁移与保存 项目地址: https://…...

KNIME Server值不值得买?中小团队协作与自动化部署的深度体验报告

KNIME Server值不值得买&#xff1f;中小团队协作与自动化部署的深度体验报告 当你的数据分析团队从三五人扩展到十几人&#xff0c;每天早上的第一件事不再是喝咖啡&#xff0c;而是处理各种工作流版本冲突、手动执行定时任务、反复解释流程逻辑时&#xff0c;KNIME Server这个…...

从老古董NE555到单片机:手把手教你做一个简易数字频率计(STC89C52)

从NE555到STC89C52&#xff1a;打造高性价比数字频率计的完整指南 在电子爱好者的世界里&#xff0c;测量信号频率是一项基础却至关重要的技能。想象一下&#xff0c;当你调试一个振荡电路时&#xff0c;能够实时看到信号频率的变化&#xff1b;或者当你需要验证一个传感器输出…...

手把手教你为STM32G474RET6逆变器项目添加阿里云和蓝牙APP远程监控

STM32G474RET6逆变器项目的智能化升级&#xff1a;云平台与蓝牙监控实战指南 在电力电子领域&#xff0c;逆变器作为能量转换的核心设备&#xff0c;其智能化升级已成为行业趋势。本文将深入探讨如何为基于STM32G474RET6的三相逆变器项目添加远程监控能力&#xff0c;通过4G模块…...

Windows Cleaner:释放C盘空间,让你的Windows系统重获新生

Windows Cleaner&#xff1a;释放C盘空间&#xff0c;让你的Windows系统重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经历过Windows系统越用越慢…...