首页 > 解决方案 > 无法注册客户端 - Spring Boot Admin 2.0.2

问题描述

我正在根据文档进行开发:https ://codecentric.github.io/spring-boot-admin/2.0.2 ,但我没有在安全的应用程序中注册客户端。

我的配置是:

应用程序.yml

# Security config
spring.security.user:
  name: admin
  password: admin

# Actuator config
management:
  endpoint:
    shutdown.enabled: true
    health.show-details: always
  endpoints.web.exposure.include: '*'

# Spring boot admin config
spring.boot.admin:
  context-path: /admin
  client:
    url: http://localhost:8080/admin
    username: ${spring.security.user.name}
    password: ${spring.security.user.password}
    instance:
      name: ${app.name}
      metadata.user:
        name: ${spring.security.user.name}
        password: ${spring.security.user.password}

网络安全配置

@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    private final String adminContextPath;

    public WebSecurityConfiguration(AdminServerProperties adminServerProperties) {
        this.adminContextPath = adminServerProperties.getContextPath();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter("redirectTo");
        successHandler.setDefaultTargetUrl(adminContextPath + "/");

        http.authorizeRequests()
                .antMatchers(adminContextPath + "/assets/**").permitAll()
                .antMatchers(adminContextPath + "/login").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                .logout().logoutUrl(adminContextPath + "/logout").and()
                .httpBasic().and()
                .csrf()
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .ignoringAntMatchers("/instances", "/actuator/**");
    }

}

并且正在发生错误:

2018-08-22 00:44:21.770 DEBUG 9616 --- [gistrationTask1] d.c.b.a.c.r.ApplicationRegistrator: Failed to register application as Application(name=template-api, managementUrl=http://localhost:8080/actuator, healthUrl=http://localhost:8080/actuator/health, serviceUrl=http://localhost:8080/) at spring-boot-admin ([http://localhost:8080/admin/instances]): 401 null

有人可以帮忙401吗?

2018 年 9 月 1 日更新:

我尝试了单独的配置并发生相同的错误:

服务器:

# Security config
spring.security.user:
  name: test-name
  password: test-password

# Spring boot admin config  
spring.boot.admin:
  context-path: /admin

客户:

# Spring boot admin config
spring.boot.admin:
  client:
    url: http://localhost:8080/admin
    username: test-name
    password: test-password
    instance:
      name: ${app.name}
      metadata.user:
        name: test-name
        password: test-password

标签: javaspringspring-bootspring-securityspring-boot-admin

解决方案


401 Unauthorized 错误是一个 HTTP 状态代码,表示您尝试访问的页面在您首次使用有效的用户 ID 和密码登录之前无法加载。您是否正确配置了客户端和管理服务器?

您可以在此处查看我的带有和不带有安全配置的服务器和客户端 Spring Boot 应用程序的示例源代码。
https://github.com/anandvarkeyphilips/spring-boot-admin/tree/master/spring-boot-admin-samples


推荐阅读