Раскрытие мощи: отключение Actuator Endpoint Security в Spring Boot

Spring Boot Actuator предоставляет мощные конечные точки для мониторинга и управления вашим приложением. Однако в некоторых случаях вам может потребоваться отключить безопасность конечных точек, чтобы разрешить неограниченный доступ во время разработки или тестирования. В этой статье блога мы рассмотрим несколько способов отключения безопасности конечной точки Actuator в Spring Boot, что предоставит вам гибкость, необходимую для тонкой настройки вашего приложения.

Метод 1: отключение безопасности конечной точки Actuator через свойства приложения.
Один простой способ отключить безопасность конечной точки Actuator — добавить следующую конфигурацию в файл application.propertiesили application.yml. :

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

Эта конфигурация позволяет предоставлять доступ ко всем конечным точкам Actuator без необходимости аутентификации. Он также позволяет отображать подробную информацию о состоянии здоровья.

Метод 2: отключение безопасности конечной точки Actuator через конфигурацию Java
Если вы предпочитаете программный подход, вы можете создать класс конфигурации Java и использовать аннотацию @Configurationдля отключения безопасности конечной точки Actuator. Вот пример:

import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
            .anyRequest().permitAll();
    }
}

В этом примере мы расширяем класс WebSecurityConfigurerAdapterи переопределяем метод configure, чтобы разрешить все запросы к конечным точкам Actuator.

Метод 3: отключение безопасности конечной точки Actuator для определенных конечных точек.
Если вам нужно отключить безопасность только для определенных конечных точек Actuator, вы можете использовать свойство management.endpoints.web.exposure.includeи указать конечные точки, которые вы хотите предоставить без аутентификация. Например:

management.endpoints.web.exposure.include=health,info

Эта конфигурация предоставляет доступ только к конечным точкам healthи infoбез необходимости аутентификации.

Отключение безопасности конечной точки Actuator в Spring Boot необходимо для определенных сценариев разработки и тестирования. В этой статье мы рассмотрели три различных метода достижения этой цели. Используя предоставленные примеры кода и параметры конфигурации, вы можете точно настроить безопасность конечной точки Actuator вашего приложения в соответствии с вашими конкретными требованиями.