美文网首页
SpringBootAdmin 部署以及开启用户登录

SpringBootAdmin 部署以及开启用户登录

作者: 楚长铭 | 来源:发表于2020-07-21 11:16 被阅读0次

    adminServer同时会被注册成client,添加security监控,同时注册到consul注册中心

    依赖

    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</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-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>
    
    

    配置文件

    server:
      port: 10000
    
    spring:
      profiles:
        active: dev
      application:
        name: admin-server
      security:
        user:
          name: 登录用户名
          password: 登录密码
      boot:
        admin:
          discovery:
            #忽略注册中心consul,否则一直报错
            ignored-services: consul
          ui:
            title: 服务监控中心
          client:
            username: ${spring.security.user.name}
            password: ${spring.security.user.password}
            url:  http://localhost:${server.port}
    
    
    
    #暴露健康监测接口给admin
    management:
      endpoints:
        web:
          exposure:
            include: '*'
      endpoint:
        health:
          show-details: ALWAYS
    
    • dev部分
    spring:
      cloud:
        consul:
          enabled: true
          host: consul的ip
          port: consul的端口
          discovery:
            acl-token: 开始了acl的token
    
    logging:
      file:
        path:日志路径
    
    #暴露应用信息
    management:
      endpoint:
        #admin配置在线日志位置
        logfile:
          external-file: ${logging.file.path}/admin-server.log
    

    日志配置

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true" scanPeriod="10 seconds">
    
        <contextName>logback</contextName>
        <springProperty name="logging.path" scope="context" source="logging.file.path"/>
        <springProperty name="logging.name" scope="context" source="spring.application.name"/>
    
        <!-- 彩色日志 -->
        <!-- 彩色日志依赖的渲染类 -->
        <conversionRule conversionWord="clr"
                        converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
        <conversionRule conversionWord="wex"
                        converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
        <conversionRule conversionWord="wEx"
                        converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    
        <!-- 彩色日志格式 -->
        <property name="CONSOLE_LOG_PATTERN"
                  value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    
        <!-- 文件日志格式 -->
        <property name="FILE_LOG_PATTERN"
                  value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } [%X{TRACE_ID}]  %logger{50} - %msg%n}"/>
    
        <!--输出到控制台-->
        <appender class="ch.qos.logback.core.ConsoleAppender" name="CONSOLE">
            <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>info</level>
            </filter>
            <encoder>
                <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
    
        <!--  输出到文件日志  -->
    
        <!--  总日志文件  -->
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--日志名称以及路径-->
            <file>${logging.path}/${logging.name}.log</file>   
    
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--  日志归档路径 -->
                <fileNamePattern>${logging.path}/${logging.name}-%d{yyyy-MM-dd}.log</fileNamePattern>
                <!--  日志保存时间 -->
                <MaxHistory>7</MaxHistory>       
            </rollingPolicy>
            <encoder>
                <Pattern>${FILE_LOG_PATTERN}</Pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
    
        <!-- 时间滚动输出 level为 ERROR 日志 -->
        <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_FILE">
            <file>${logging.path}/${logging.name}-error.log</file>
            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logging.path}/${logging.name}-error-%d{yyyy-MM-dd-HH}.log</fileNamePattern>
                <maxHistory>7</maxHistory>
            </rollingPolicy>
            <!-- 此日志文件只记录ERROR级别的 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <!--日志文件输出格式-->
            <encoder>
                <Pattern>${FILE_LOG_PATTERN}</Pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
    
        <!-- 本地环境-->
        <springProfile name="dev">
            <root level="info">
                <appender-ref ref="FILE"/>
                <appender-ref ref="ERROR_FILE"/>
                <appender-ref ref="CONSOLE"/>
            </root>
        </springProfile>
    
        <springProfile name="test">
            <root level="info">
                <appender-ref ref="FILE"/>
                <appender-ref ref="ERROR_FILE"/>
            </root>
        </springProfile>
    
    
    </configuration>
    
    

    添加注解

    @EnableAdminServer
    @EnableDiscoveryClient
    

    security的配置

    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
    
        @Autowired
        private AdminServerProperties adminServerProperties;
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
    
            String path = adminServerProperties.getContextPath();
    
            SavedRequestAwareAuthenticationSuccessHandler successHandler =
                    new SavedRequestAwareAuthenticationSuccessHandler();
            successHandler.setTargetUrlParameter("redirectTo");
    
            http.authorizeRequests()
                    //静态资源和login以及健康检查
                    .antMatchers(path + "/assets/**").permitAll()
                    .antMatchers(path + "/login").permitAll()
                    .antMatchers("/actuator/**").permitAll()
                    .anyRequest().authenticated()
    
    
                    .and()
                    .formLogin().loginPage(path + "/login")
    
                    .successHandler(successHandler)
                    .and().logout().logoutUrl(path + "/logout")
    
                    .and().httpBasic().and().csrf().disable();
    
        }
    
    
    }
    

    相关文章

      网友评论

          本文标题:SpringBootAdmin 部署以及开启用户登录

          本文链接:https://www.haomeiwen.com/subject/joibkktx.html