1. 程式人生 > >使用Spring Security給Spring Boot Admin做一個安全驗證登入

使用Spring Security給Spring Boot Admin做一個安全驗證登入

專案中我們可用到Spring Boot Admin 應用監控 監控伺服器的各項指標狀態。

本類別文章已經介紹了 如何搭建Spring Boot Admin 截圖正常執行效果圖如下:



下邊我們貼下關鍵實現該功能的過程

<dependency>
   <groupId>de.codecentric</groupId>
   <artifactId>spring-boot-admin-server-ui-login</artifactId>
   <version>${spring-boot-admin.version}</version>
</dependency>
<!--  spring-boot-starter-security -->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
   <version>1.4.5.RELEASE</version>
</dependency>

關閉 原有的Basic認證

management:
security: enabled: false

security:
  user:
    name: miyaow
    password: 123

  basic:
    enabled: false

定義重寫我們的許可權控制類

/**
 * 配置HTTPBASIC許可權驗證
 *
 * @author yesh
 *         (M.M)!
 *         Created by 2017/5/15.
 */
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled 
= true, prePostEnabled = true, proxyTargetClass = true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { //忽略css.jq.img等檔案 web.ignoring().antMatchers("/**.html","/**.css", "/img/**", "/**.js","/third-party/**"); } @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable() //HTTP with Disable CSRF .authorizeRequests() //Authorize Request Configuration .antMatchers( "/login", "/api/**", "/**/heapdump", "/**/loggers", "/**/liquibase", "/**/logfile", "/**/flyway", "/**/auditevents", "/**/jolokia").permitAll() //放開"/api/**":為了給被監控端免登入註冊並解決Log與Logger衝突 .and() .authorizeRequests() .antMatchers("/**").hasRole("USER") .antMatchers("/**").authenticated() .and() //Login Form configuration for all others .formLogin() .loginPage("/login.html") .loginProcessingUrl("/login").permitAll() .defaultSuccessUrl("/") .and() //Logout Form configuration .logout() .deleteCookies("remove") .logoutSuccessUrl("/login.html").permitAll() .and() .httpBasic(); }

並在啟動類中新增開啟功能註解

@Configuration
@EnableAdminServer //開啟Spring Boot Admin 服務
@EnableDiscoveryClient
@SpringBootApplication
public class MiSpringBootAdminApplication {

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

}

這樣就基本上完成了基本的配置。

歡迎大家多給給意見我的開源專案,更多詳情見我的MI系統介紹githun地址如下: