欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBootAdmin学习文档

程序员文章站 2022-05-12 13:17:25
SpringBootAdmin学习文档说明:SpringBootAdmin监控分为server和client两部分,具体需监控的项目称为client,展示给开发者的web页面查看为server服务。不使用注册中心集成SpringBootAdmin:在实际应用中需要开发者在所要监控的服务中引入spring-boot-admin-starter-client依赖,若对应的SpringBootAdmin项目已经集成了spring-boot-starter-security还需配置对应的登录账号。使...

SpringBootAdmin学习文档

说明:SpringBootAdmin监控分为server和client两部分,具体需监控的项目称为client,展示给开发者的web页面查看为server服务。

  • 不使用注册中心集成SpringBootAdmin:
    在实际应用中需要开发者在所要监控的服务中引入spring-boot-admin-starter-client依赖,若对应的SpringBootAdmin项目已经集成了spring-boot-starter-security还需配置对应的登录账号。

  • 使用注册中心(nocas/eureka)集成SpringBootAdmin:
    待探索。

SpringBootAdmin项目搭建

  • 通过IDEA生成Maven项目

SpringBootAdmin学习文档SpringBootAdmin学习文档

  • 工作空间进行maven集成配置

SpringBootAdmin学习文档

POM文件配置

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.2.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server-ui</artifactId>
        <version>2.2.1</version>
    </dependency>

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

</dependencies>

集成spring-boot-starter-security登录校验

说明:上图pom文件可知我们引入了spring-boot-starter-security进行登录拦截,其是对于整个项目进行登录拦截,有对应的原始拦截页面,若我们不希望使用security自带的登录页面可使用添加重定向类的方式解决。

  • 关于security登陆拦截重定向类
/**
* @Description security登录权限路由,去除掉security原始登录页面
* @Usage_scenarios
* @Return
* @Author ZYQ
* @Date 2020/11/11 17:56
**/
@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 {
        // @formatter:off
        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=8001
spring.application.name=admin-server
#登录账户
spring.security.user.name=admin
#登录密码
spring.security.user.password=admin

启动项

代码预览

/**
 * 启动类
 * SpringBoot项目会自动加载数据库连接本项目只为监控UI展示
 * 不集成mysql数据库故将数据库连接禁止
 * 必要注解@EnableAdminServer
 * 通过在配置中添加@EnableAdminServer,来导入Spring Boot Admin Server配置
 */
@EnableAdminServer
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class,
                                                                     HibernateJpaAutoConfiguration.class})
public class AdminServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(AdminServerApplication.class, args);
    }
}

SpringBootAdmin监控项目示例展示

说明:以下服务信息需启动对应的所要监控的项目才可更直观体验。

SpringBootAdmin学习文档
SpringBootAdmin学习文档
SpringBootAdmin学习文档

本文地址:https://blog.csdn.net/LDS666win/article/details/109646615