Я настроил свою собственную конфигурацию аутентификации в памяти, и мое приложение может зарегистрироваться на Spring Boot Admin Server, и сервер получит правильные учетные данные, но все равно получит неавторизованный ответ от моего приложения. Если я введу учетные данные в своем браузере, он будет работать.
@Configuration
@Order(2)
public class ActuatorSecurity 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-admin-dashboard
Разница между запросом браузера, который работает, и Spring-Boot-Admin запрос, который приводит к 401, заключается в том, что «BasicAuthenticationFilter» получает заголовок при попытке brwoser, но при попытке Spring-Boot-Admin «BasicAuthenticationFilter» не читает какой-либо заголовок и приводит к анонимному пользователю. Есть идеи?