actuator--基础--05--端点保护

2023-11-03

actuator–基础–05–端点保护


代码位置

https://gitee.com/DanShenGuiZu/learnDemo/tree/master/actuator-learn/actuator01

1、介绍

如果将默认不打开的endpoints打开了,建议一定要加上 Spring security 之类的做 endpoint 保护,避免重要信息外泄。

因为端点的信息和产生的交互都是非常敏感的,必须防止未经授权的外部访问。

2、代码

在这里插入图片描述

2.1、依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.2、定义安全校验规则,用来覆盖Spring Security 的默认配置

package fei.zhou.actuator01.security;

/**
 * 描述该类
 *
 * @author <a href="920786312@qq.com">周飞</a>
 * @class: ActuatorSecurityConfig
 * @date 2022/9/13  19:36
 * @Verson 1.0 -2022/9/13  19:36
 * @see
 */

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.boot.actuate.context.ShutdownEndpoint;
import org.springframework.boot.autoconfigure.security.servlet.PathRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
 *
 * 定义安全校验规则,用来覆盖Spring Security 的默认配置。
 *
 * @param null
 * @return
 * @author <a href="920786312@qq.com">周飞</a>
 * @since 2022/9/13 20:00
 */
@Configuration
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        /*
         * version1:
         *
         * 1. 限制 '/shutdown'端点的访问,只允许actuator访问
         *
         * 2. 允许外部访问其他的端点
         *
         * 3. 允许外部访问静态资源
         *
         * 4. 允许外部访问 '/'
         *
         * 5. 其他的访问需要被校验
         */
        // http
        // // 允许基于httpServerRequest限制访问
        // .authorizeRequests()
        // // 限制 '/shutdown'端点的访问,只允许actuator访问
        // .requestMatchers(EndpointRequest.to(ShutdownEndpoint.class)).hasRole("ADMIN")
        // // 允许外部访问其他的端点
        // .requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll()
        // // 允许外部访问静态资源
        // .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
        // // 允许外部访问 '/'
        // .antMatchers("/").permitAll()
        // // /**请求,需要用户登录验证
        // .antMatchers("/**")
        // // 需要用户登录验证
        // .authenticated().and()
        // // 配置httpBasic验证
        // .httpBasic();
        
        /*
         * version2:
         *
         * 1. 限制所有端点的访问,只允许actuator访问
         *
         * 2. 允许外部访问静态资源
         *
         * 3. 允许外部访问 '/'
         *
         * 4. 其他的访问需要被校验 '/'
         */
        
        http
                // 允许基于httpServerRequest限制访问
                .authorizeRequests()
                // Endpoint 请求,需要有ADMIN角色
                .requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole("ADMIN")
                // 静态资源 请求,允许访问
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                // /请求,允许访问
                .antMatchers("/").permitAll()
                // /**请求,需要用户登录验证
                .antMatchers("/**")
                // 需要用户登录验证
                .authenticated().and()
                // 配置httpBasic验证
                .httpBasic();
    }
}

2.3、application.properties

# Spring Security 的 账号,密码,角色
spring.security.user.name=actuator
spring.security.user.password=actuator
spring.security.user.roles=ADMIN

2.4、测试

localhost:8080/actuator/health

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

actuator--基础--05--端点保护 的相关文章

随机推荐

  • 二、 在Sails中使用Typescript

    文章目录 Typescript 基础 Typescript 安装 TypeScript 问题 最简单的改造 Sails重定义 Waterline Orm 重写Models Typescript 重写控制器 User Model的进一步优化
  • HTML5小组件

    10 CSS3社交关系网模拟动画 这次我们要给大家分享一款CSS3模拟社交关系网的动画特效 社交网的中心是用户的头像图片 由中心连线展开到各个社交网络的Logo图片 同时每一条连接线上面都会有一个圆点由中心向各个节点移动 形成关系网的模拟动
  • 联想小新系列win10系统使用IDEA经常闪退,蓝屏,死机,饱受折磨

    出现这种情况的 而且也是小新系列的 确定了是IDEA与电脑冲突导致的 解决办法在文末 经历介绍 阶段一 2020 7 12换的电脑 联想小新系列的 大概一周后官网下载了IDEA2020 1 3版本 安装后网上搜了一个破解工具成功激活了 但是
  • QT笔记(四):在窗口中添加背景图片时并且不覆盖其控件原来样子

    1 文章一 https blog csdn net yuxiangdeming article details 78352841 在构造函数中添加 this gt setObjectName dialog 这句话一定要有 不然 整个界面上的
  • 【Linux篇】TCP 编程

    include
  • [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者 会遇到采用Go语言开发的恶意样本 因此从今天开始从零讲解Golang编程语言 一方面是督促自己不断前行且学习新知识 另一方面是分享与读者 希望大家一起进步 前文介绍了Go的编译运行 语法规范 注释转义及API标准库知识
  • vue之事件修饰符详解( .stop、.prevent、 .capture 、.self、.once、passive)

    stop 是阻止冒泡行为 不让当前元素的事件继续往外触发 如阻止点击div内部事件 触发div事件 prevent 是阻止事件本身行为 如阻止超链接的点击跳转 form表单的点击提交 self 是只有是自己触发的自己才会执行 如果接受到内部
  • Java后端实现分页效果

    前言 在我们的Java项目中 分页是必不可少的数据展示页面所以这篇博客主要讲分页的实现 在我们的开发当中 前后端之间数据交互是必不可少的 如果数据比较多 就需要进行数据封装 拿到前端进行页面的展示 第一步 准备工具类 用作数据封装 拿到前端
  • 惠普台式计算机系统系统修复,一键恢复系统,详细教您怎么一键恢复惠普笔记本系统...

    我们在使用电脑的时候 有的时候会遇到一些电脑上的问题 例如电脑开机没反应 电脑蓝屏 死机等 解决这些问题的方法之一就是恢复系统 那么我们要怎么操作呢 今天小编就告诉你们惠普笔记本要怎么一键恢复系统 最近小编在浏览网页的时候看到有小伙在谈论惠
  • echarts 解决xAxis,yAxis 数据字符长度过长问题

    axisTick alignWithLabel true interval 0 rotate 30 margin 15 axisLabel interval 0 rotate 40
  • 代码随想录算法训练营第三十一天

    补作业 开启贪心算法的学习
  • 【项目实战】如何使用Postman调用WebSocket程序

    一 背景说明 项目中需要使用WebSocket进行通信 开发完了WebSocket接口 总得测试吧 以下是Postman调用WebSocket程序的方法 二 注意事项 2 1 为啥选Postman 最近都在用ApiFox做接口调用 但是目前
  • 以太坊之三状态树

    正在学习区块链 如果我哪里有错误希望大家指出 如果有任何想法也欢迎留言 这些笔记本身是在typora上写的 如果有显示不正确的敬请谅解 笔记本身也是给我自己写的 所以如果有侵权的请通知我 我立即删除 3 状态树 这个数据结构的目的很明显 为
  • “你已被移出穷人群”

    壹心理创作者 触角 本文转载自壹心理旗下最有料公众号 心理公开课 ID yixinligongkaike 01 关于 贫穷 我们受到的恐吓不下10000次 中国的年轻人 光是今年 受到贫穷的恐吓就可能不下10000次 一篇细致描绘北漂生活的
  • MySQL的存储过程中使用游标来接收查询结果集

    我们如果要在MySQL的存储过程中遍历一个查询语句的结果集 需要使用到游标cursor SQL server中可以定义表类型的变量Table 但MySQL中不行 只能用游标 假设我需要从 tb stu 这张表中查询出所有记录插入到tb st
  • 基于Linux的智能车载监控系统设计

    目录 一 设计背景 二 系统总体方案设计 2 1 系统框图及总体工作原理描述 三 系统硬件介绍 3 1处理器资源介绍 3 1 1核心板资源 3 1 2 核心板特性 3 4 Camera接口 3 5音频接口 四 系统软件设计 4 1 软件整体
  • poi版本升级 POI操作Excel文件,通过文件流判断Excel的版本.原来版本不能用

    原始版本代码入下 if POIFSFileSystem hasPOIFSHeader inputstream book new HSSFWorkbook inputstream isXSSFWorkbook false else if PO
  • 14-剪绳子

    题目 给你一根长度为n的绳子 请把绳子剪成m段 m n都是整数 且都大于1 每段绳子的长度记为k 0 k 1 k m 请问k 0 k 1 k 2 k m 可能的最大成绩是多少 def max product cut n if n lt 2
  • vue工程化之路由(router)

    路由router 路由router的使用步骤 在src main js入口文件中引入相关模块及组件 在src下新建个router目录 然后在router里面新建个index js文件 此时会报错 找不到依赖 可以运行npm install
  • actuator--基础--05--端点保护

    actuator 基础 05 端点保护 代码位置 https gitee com DanShenGuiZu learnDemo tree master actuator learn actuator01 1 介绍 如果将默认不打开的endp