1. 程式人生 > 其它 >(65)java Spring Cloud+Spring boot+mybatis企業快速開發架構之使用Spring Security給Spring Boot Admin開啟認證

(65)java Spring Cloud+Spring boot+mybatis企業快速開發架構之使用Spring Security給Spring Boot Admin開啟認證

監控類的資料 Web 管理端最好不要設定成直接通過輸入訪問地址就可以訪問,必須得進行使用者認證才行,以保證資料的安全性。Spring Boot Admin 開啟認證也可以藉助於 spring-boot-starter-security。獲取原始碼

加入依賴,程式碼如下所示。

1 2 3 4 <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-security</artifactid> </dependency>

然後在屬性檔案裡面配置認證資訊:

1 2 spring.security.user.name=zhangsan spring.security.user.password=123456

自定義安全配置類,程式碼如下所示。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 @Configuration publicstaticclassSecurityPermitAllConfigextendsWebSecurityConfigurerAdapter{ privatefinalString
adminContextPath; publicSecurityPermitAllConfig(AdminServerPropertiesadminServerProperties){ this.adminContextPath=adminServerProperties.getContextPath(); } @Override protectedvoidconfigure(HttpSecurityhttp)throwsException{ SavedRequestAwareAuthenticationSuccessHandlersuccessHandler=newSavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo"); //靜態資源和登入頁面可以不用認證 http.authorizeRequests().antMatchers(adminContextPath+"/assets/**").permitAll() .antMatchers(adminContextPath+"/login").permitAll() //其他請求必須認證 .anyRequest().authenticated() //自定義登入和退出 .and().formLogin().loginPage(adminContextPath+"/login").successHandler(successHandler).and().logout() .logoutUrl(adminContextPath+"/logout") //啟用HTTP-Basic,用於SpringBootAdminClient註冊 .and().httpBasic().and().csrf().disable(); } }

重啟程式,然後就會發現需要輸入使用者名稱和密碼才能訪問 Spring Boot Admin 的 Web 管理端,如下圖所示。

這裡需要注意的是,如果 Spring Boot Admin 服務開啟了認證,監控的服務中也需要配置對應的使用者名稱和密碼,否則會註冊失敗。

在 spring-boot-admin-client 屬性檔案中加上使用者認證資訊:

1 2 spring.boot.admin.client.username=zhangsan spring.boot.admin.client.password=123456