Spring Boot Admin 快速入门详解

网友投稿 303 2022-09-16


Spring Boot Admin 快速入门详解

目录1、介绍2、服务端搭建2.1 引入依赖2.2 添加注解2.3 进行测试2.4 测试结果3、客户端搭建3.1 引入依赖3.2 编写配置3.3 进行测试4、安全性4.1 添加依赖4.2 编写配置4.3 编写配置类4.4 修改客户端配置4.5 进行测试总结

1、介绍

官网地址

Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控。Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交互;单体项目中需要整合 spring-boot-admin-client 才能让应用被监控。在 SpringCloud 项目中,spring-boot-admin-server 是直接从注册中心抓取应用信息,不需要每个微服务应用整合 spring-boot-admin-client 就可以实现应用的管理和监控。

2、服务端搭建

2.1 引入依赖

注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot 是 2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

de.codecentric

spring-boot-admin-starter-server

2.3.1

2.2 添加注解

给启动类添加一个注解:@EnableAdminServer

@EnableAdminServer

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

public class ServerApplication {

public static void main(String[] args) {

SpringApplication.run(ServerApplication.class, args);

}

}

2.3 进行测试

访问项目的端口号即可!

例如我配置的端口号是 9000,那么直接访问 http://localhost:9000/ 即可!

2.4 测试结果

3、客户端搭建

3.1 引入依赖

注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot 是 2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

de.codecentric

spring-boot-admin-starter-client

2.3.1

3.2 编写配置

编写 application.yml 文件:

spring:

application:

name: Client

boot:

admin:

client:

# 配置 Admin Server(服务端的名字)

url: http://localhost:9000

server:

port: 9001

# 开放端点用于 SpringBoot Admin 的监控

management:

endpoints:

web:

exposure:

include: '*'

logging:

file:

# 配置生成日志文件名称

name: admin-client.log

3.3 进行测试

启动项目,然后访问服务端的 Web 管理界面:

4、安全性

这个 Spring Boot Admin 的管理后台不用账号密码就能直接访问,一点都不安全,因此要给它加上登录的功能。

参考 Spring Boot Admin 的官方文档,我们可以在 Admin-Server 端添加 Spring Security 相关依赖及就可以实现需要登录后才能访问网页管理面板。

官网文档地址

4.1 添加依赖

在服务端添加 Spring Security 依赖:

org.springframework.boot

spring-boot-starter-security

4.2 编写配置

编写 application.yml 文件,编写用户名密码:

server:

port: 9000

spring:

application:

name: Server

security:

user:

name: admin

password: admin

4.3 编写配置类

编写 Spring Security 的配置类:

@Configuration

public class SecurityConfig extends WebSecurityConfigurerAdapter {

private final String adminContextPath;

public SecurityConfig(AdminServerProperties adminServerProperties) {

this.adminContextPath = adminServerProperties.getContextPath();

}

@Override

protected void configure(HttpSecurity http) throws Exception {

SavedRequestAwareAuthenticationSuccessHandler successHandler = new Sahttp://vedRequestAwareAuthenticationSuccessHandler();

successHandler.setTargetUrlParameter("redirectTo");

successHandler.setDefaultTargetUrl(adminContextPath + "/");

http.authorizeRequests()

// 1. 配置所有静态资源和登录页可以公开访问(匿名访问)

.antMatchers(adminContextPath + "/assets/**").permitAll()

.antMatchers(adminContextPath + "/login").permitAll()

.anyRequest().authenticated()

.and()

// 2. 配置登录和登出路径

.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()

.logout().logoutUrl(adminContextPath + "/logout").and()

// 3. 开启 http basic 支持,客户端注册时需要使用

.httpBasic().and()

.csrf()

// 4. 开启基于 Cookie 的 CSRF 保护

.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())

// 5. 忽略这些路径的 CSRF 保护以便客户端注册

.ignoringAntMatchers(

adminContextPath + "/instances",

adminContextPath + "/actuator/**"

http:// );

}

}

4.4 修改客户端配置

修改客户端的 application.yml 配置文件,添加用户名密码:

这里不添加用户名和密码的话,是连不上服务端的:

spring:

application:

name: Client

boot:

admin:

client:

# 配置 Admin Server(服务端的名字)

url: http://localhost:9000

# 配置用户名

username: admin

# 配置密码

password: admin

4.5 进行测试

重启客户端和服务端项目

访问效果为:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【太阁干货系列】QoS服务模型
下一篇:华为设备配置信道切换业务不中断(华为设备配置信道切换业务不中断什么原因)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~