今天需要使用 spring-boot-admin
对 spring-boot项目
进行监控的功能,之前网上的版本都太老旧了,已经不适合现在总结一下。目前版本 spring-boot-admin
版本是 2.1.4
, spring-boot项目
版本是 2.1.4.RELEASE
。
<properties> <java.version>1.8</java.version> <spring-boot-admin.version>2.1.4</spring-boot-admin.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 复制代码
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; import de.codecentric.boot.admin.server.config.AdminServerProperties; @Configuration public class SecuritySecureConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public SecuritySecureConfig(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(adminContextPath + "/instances", adminContextPath + "/actuator/**"); } } 复制代码
配置之后,访问需要用户名和密码
server.port=8070 spring.security.user.name=admin spring.security.user.password=123456 复制代码
修改端口,防止端口占用,同时指定用户名和密码
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.server.config.EnableAdminServer; @SpringBootApplication @EnableAdminServer public class BootAdminServerApplication { public static void main(String[] args) { SpringApplication.run(BootAdminServerApplication.class, args); } } 复制代码
上述程序启动即可
<properties> <java.version>1.8</java.version> <spring-boot-admin.version>2.1.4</spring-boot-admin.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 复制代码
# 开放所有页面节点 默认只开启了health、info两个节点 management.endpoints.web.exposure.include=* # 去除配置文件信息 #management.endpoints.web.exposure.exclude=configprops # 显示健康具体信息 默认不会显示详细信息 management.endpoint.health.show-details=always # server端地址 spring.boot.admin.client.url=http://127.0.0.1:8070 # 本client地址 spring.boot.admin.client.instance.service-url=http://127.0.0.1:8080 # 验证Admin用户名及密码 spring.boot.admin.client.username=admin spring.boot.admin.client.password=123456 spring.security.user.name=client spring.security.user.password=123456 复制代码