温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Boot Admin怎么用

发布时间:2022-03-04 11:51:17 来源:亿速云 阅读:185 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关Spring Boot Admin怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    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。

    <!-- Spring Boot Admin 服务端依赖 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.3.1</version>
    </dependency>

    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 测试结果

    Spring Boot Admin怎么用

    3、客户端搭建

    3.1 引入依赖

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

    <!-- Spring Boot Admin 客户端依赖 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.3.1</version>
    </dependency>

    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 管理界面:

    Spring Boot Admin怎么用

    Spring Boot Admin怎么用

    4、安全性

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

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

    官网文档地址

    4.1 添加依赖

    在服务端添加 Spring Security 依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    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 		SavedRequestAwareAuthenticationSuccessHandler();
            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/**"
                    );
        }
    }

    4.4 修改客户端配置

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

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

    spring:
      application:
        name: Client
      boot:
        admin:
          client:
            # 配置 Admin Server(服务端的名字)
            url: http://localhost:9000
            # 配置用户名
            username: admin
            # 配置密码
            password: admin

    4.5 进行测试

    重启客户端和服务端项目

    访问效果为:

    Spring Boot Admin怎么用

    Spring Boot Admin怎么用

    感谢各位的阅读!关于“Spring Boot Admin怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI