Spring Boot Actuator 是一个用于监控和管理 Spring Boot 应用程序的模块。它提供了许多生产就绪的功能,如健康检查、指标收集、环境信息等。安全端点是 Actuator 提供的一组端点,用于安全地管理和监控应用程序。
Spring Boot Actuator:提供了一系列生产级别的功能,帮助开发者监控和管理应用程序。
安全端点:Actuator 中的一部分端点,如 /actuator/health
、/actuator/info
等,这些端点通常需要认证和授权才能访问。
Spring Boot Actuator 提供了多种类型的端点,包括但不限于:
问题:Spring Boot Actuator 管理未显示安全端点。
可能的原因:
application.properties
或 application.yml
中启用 Actuator 端点。spring-boot-starter-actuator
和 spring-boot-starter-security
。在 application.properties
中添加以下配置:
management.endpoints.web.exposure.include=*
或者在 application.yml
中:
management:
endpoints:
web:
exposure:
include: "*"
确保你已经添加了 Spring Security 依赖,并配置了基本的认证和授权。
Maven 依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置示例:
创建一个 Security 配置类:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeRequests(authorize -> authorize
.antMatchers("/actuator/**").hasRole("ADMIN")
.anyRequest().authenticated()
)
.httpBasic();
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
.username("admin")
.password("password")
.roles("ADMIN")
.build();
return new InMemoryUserDetailsManager(user);
}
}
确保你的 pom.xml
或 build.gradle
中包含了必要的依赖:
Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Gradle:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-security'
通过以上步骤,你应该能够正确配置和显示 Spring Boot Actuator 的安全端点。
领取专属 10元无门槛券
手把手带您无忧上云