【问题标题】:Spring boot admin configurationSpring Boot 管理配置
【发布时间】:2019-07-01 20:45:11
【问题描述】:
我在使用 spring boot admin 时遇到了 2 个问题
1) 我想通过 ssl(https) 使用 spring boot admin,但是他正在通过 http 加载资产,所以我遇到了错误
enter image description here
2) 我正在将 spring boot admin 连接到 8 个不同的服务器,其中一些执行器端点正在接受身份验证(spring boot 安全性),如何将自定义用户名和密码从 spring boot admin 服务器传递到执行器端点?,或任何其他自定义标题。
感谢您的帮助
【问题讨论】:
标签:
java
spring
spring-boot
spring-boot-actuator
spring-boot-admin
【解决方案1】:
关于问题2)
如果您的 Spring Boot 应用程序由 http 基本身份验证保护。像这样,
@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 application(不是spring boot admin server)中的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 确认