- 内容简介
- 前言
- 第 1 章 第一个 Spring Boot 项目
- 第 2 章 集成 MySQL 数据库
- 第 3 章 集成 Spring Data JPA
- 第 4 章 使用 Thymeleaf 模板引擎
- 第 5 章 Spring Boot 事务支持
- 第 6 章 使用过滤器和监听器
- 第 7 章 集成 Redis 缓存
- 第 8 章 集成 Log4j 日志
- 8.3 使用 Log4j 记录日志
- 第 9 章 Quartz 定时器和发送 Email
- 第 10 章 集成 MyBatis
- 第 11 章 异步消息与异步调用
- 第 12 章 全局异常处理与 Retry 重试
- 第 13 章 集成 MongoDB 数据库
- 第 14 章 集成 Spring Security
- 第 15 章 Spring Boot 应用监控
- 第 16 章 集成 Dubbo 和 Zookeeper
- 第 17 章 多环境配置与部署
- 第 18 章 Spring Boot 原理解析
- 参考文献
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
15.4 保护 Actuator 端点

Actuator 端点发布的信息很多都涉及敏感信息和高危操作,比如/shutdown 端点可以直接关闭应用程序,如果随便某个人都有权限访问该端点,那么是非常危险的。因此,我们有必要控制 Actuator 端点的访问权限来保护 Actuator 端点被非法访问。想要保护 Actuator 端点,我们可以像保护其他 URL 路径一样,通过使用 Spring Security 来控制 URL 路径的授权访问。
在第 14 章中,我们已经在 Spring Boot 中集成 Spring Security,并且开发了 WebSecurityConfig 配置类对用户登录进行授权访问,现在改造该类,具体代码如下:
我们通过使用 antMatchers("/shutdown").access("hasRole('READER')") 方法对/shutdown 进行授权访问,/shutdown 端点现在仅允许拥有 ADMIN 权限的用户进行访问。
端点/shutdown 已经被保护起来了,假如现在想保护其他端点,例如/metrics、/health 等,只需要传入到 antMatchers() 的输入参数即可。具体代码如下:
.authorizeRequests() // 要求有管理员的权限 .antMatchers("/shutdown","/metrics","/health") .access("hasRole('READER')")
如果觉得每次添加一个端点的访问权限都得在 antMatchers() 方法中修改很麻烦,那么可以在 application.properties 配置文件中配置端点访问的上下文,具体配置如下:
### 配置端点访问的上下文路径 management.context-path=/manage
此时,在为 Actuator 端点赋予 ADMIN 权限的时候,就能借助这个上下文/manage:
// 要求有管理员的权限 .antMatchers("/manage/**") .access("hasRole('READER')")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论