返回介绍

15.4 保护 Actuator 端点

发布于 2025-04-26 13:53:54 字数 1491 浏览 0 评论 0 收藏

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。