Spring Boot Actuator 整合 Security

本文展示如何结合Spring Security和Spring Actuator,实现仅限admin用户访问应用监控功能。通过配置依赖、启动类及YAML文件,再自定义安全配置类,确保所有/actuator/*路径请求需验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Actuator介绍链接

Actuator是spring(boot)中 应用监控功能(应用运行环境以及运行状况)
Security是spring(boot)中 安全性保证(登陆、权限等)
将两者整合是为了完成只有admin用户才可以访问查看应用监控的功能,并且spring提供的这两个模块刚好可以使我们以最快的速度完成开发。

一个最简单的案例

首先依赖

    <dependency>  
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>
    
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-security</artifactId>
       <version>2.1.0.RELEASE</version>
   </dependency>

一个最简单的启动类

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

配置文件 application.yml

server:  #应用入口端口
  port: 8081
   
spring:     #Security 登陆的用户名跟密码(通常不会写在配置文件中,这里是为了掩饰)
  security:
   user:
      name: "admin"
      password: "123456"

management:  #Actuator的端点配置,详细了解请点击文上方Actuator连接
  endpoints:
     web:
      exposure:
        include: "*"
  endpoint:
     health:
      show-details: ALWAYS

这个时候Actuator已经完成(只需要依赖跟配置文件中的配置即可)
但是我们还需要去拦截url,使其需要通过安全认证(配置文件中的用户名跟密码)才可以访问,这个时候我们需要写一个配置类

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;


public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
             http.formLogin()  //设置登陆页面,当前是使用的security自己的
                .and() //不同模块设置用and分开
                .authorizeRequests().antMatchers("/actuator/*").authenticated() //拦截的url
                .anyRequest().permitAll(); //其他的请求全部放行
  //这个意思是通过http:localhost:8081/actuator前缀的url访问的页面都被拦截,需要认证
  //想详细了解的话,可以Security官网查
 
    }
}

此时访问
http:localhost:8081/actuator
就会跳转到安全登陆页面
在这里插入图片描述
输入我们application.yml文件中指定的 admin/123456 就会成功跳转到Actuator页面
在这里插入图片描述
至此,最简单Actuator跟Security整合就完成了,因为其他文章有对两者的讲解,所以这里只是做一个简单的案例,通过详细了解两个以及这个整合的案例,可以做自己想要的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值