使用Spring Security給Spring Boot Admin做一個安全驗證登入
阿新 • • 發佈:2018-12-24
專案中我們可用到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地址如下: