Spring Boot管理员配置

时间:2019-02-07 16:49:45

标签: java spring spring-boot spring-boot-actuator spring-boot-admin

在使用spring boot admin时我遇到2个问题

1)我想通过ssl(https)使用spring boot admin,但是他正在通过http加载资源,所以我遇到了错误

enter image description here

2)我正在将Spring Boot Admin连接到8个不同的服务器,其中一些执行器端点已通过身份验证(Spring Boot安全性),如何将自定义用户名和密码从Spring Boot管理服务器传递到执行器端点?或任何其他自定义标题。

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

关于问题2)

如果您的Spring引导应用程序受http basic auth保护。像这样

@Configuration
@Order(1)
@ConditionalOnProperty(name="spring.boot.admin.client.enabled", havingValue="true", matchIfMissing=false)
public class ActuatorConfig extends WebSecurityConfigurerAdapter {
    @Value("${spring.boot.admin.client.instance.metadata.user.name:actuator}")
    private String actuatorName;
    @Value("${spring.boot.admin.client.instance.metadata.user.password:secret}")
    private String actuatorPassword;

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().withUser(actuatorName).password("{noop}"+actuatorPassword).authorities("ACTUATOR");
    }

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http
            .antMatcher("/actuator/**")
            .authorizeRequests()
                .anyRequest().hasAuthority("ACTUATOR") 
            .and()
                .httpBasic();
    }
}

执行器终点的用户名和密码是这样在Spring Boot应用程序(不是Spring Boot管理服务器)中由application.properties或application.yml定义的,

spring.boot.admin.client.instance.metadata.user.name=actuator
spring.boot.admin.client.instance.metadata.user.password=secret

您的Spring Boot应用程序将使用这些信息连接到Spring Boot管理服务器,Spring Boot管理服务器将使用这些信息将应用程序的执行器端点连接回去。

  • 已通过Spring boot Admin 2.1.2确认