From 6f1aafa2a767c79dc8306bd38f9a8152efcd738c Mon Sep 17 00:00:00 2001 From: zhaowg Date: Mon, 8 Oct 2018 17:48:00 +0800 Subject: [PATCH] spring boot admin增加登陆权限验证 --- zteits-project-admin/pom.xml | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zteits-project-admin/src/main/java/com/zteits/admin/SpringBootAdminApplication.java | 19 +++++++++++++++++++ zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java | 42 ++++++++++++++++++++++++++++++++++++++++++ zteits-project-admin/src/main/resources/application.yml | 13 +++++++++++++ zteits-project-admin/zteits-project-admin.iml | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 297 insertions(+), 0 deletions(-) create mode 100644 zteits-project-admin/pom.xml create mode 100644 zteits-project-admin/src/main/java/com/zteits/admin/SpringBootAdminApplication.java create mode 100644 zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java create mode 100644 zteits-project-admin/src/main/resources/application.yml create mode 100644 zteits-project-admin/zteits-project-admin.iml diff --git a/zteits-project-admin/pom.xml b/zteits-project-admin/pom.xml new file mode 100644 index 0000000..9d669d6 --- /dev/null +++ b/zteits-project-admin/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + + com.zteits.admin + zteits-project-admin + 2.0.1-SNAPSHOT + jar + + zteits-admin + + org.springframework.boot + spring-boot-starter-parent + 2.0.5.RELEASE + + + + + + de.codecentric + spring-boot-admin-starter-server + 2.0.3 + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-mail + + + + org.springframework.session + spring-session-core + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-devtools + true + + + + + compile + zteits-project-admin + + + org.springframework.boot + spring-boot-maven-plugin + + com.zteits.admin.SpringBootAdminApplication + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + + + nexus_releases + core Release Repository + http://192.168.1.195:9999/nexus/content/repositories/releases/ + + + nexus_snapshots + core Snapshots Repository + http://192.168.1.195:9999/nexus/content/repositories/snapshots/ + + + + + diff --git a/zteits-project-admin/src/main/java/com/zteits/admin/SpringBootAdminApplication.java b/zteits-project-admin/src/main/java/com/zteits/admin/SpringBootAdminApplication.java new file mode 100644 index 0000000..1ae3bb3 --- /dev/null +++ b/zteits-project-admin/src/main/java/com/zteits/admin/SpringBootAdminApplication.java @@ -0,0 +1,19 @@ +package com.zteits.admin; + +import de.codecentric.boot.admin.server.config.EnableAdminServer; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@Configuration +@EnableAutoConfiguration +@EnableAdminServer +@ComponentScan(basePackages={"com.zteits.admin"}) +public class SpringBootAdminApplication { + public static void main(String[] args) { + SpringApplication.run(SpringBootAdminApplication.class, args); + } +} \ No newline at end of file diff --git a/zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java b/zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java new file mode 100644 index 0000000..eb813f2 --- /dev/null +++ b/zteits-project-admin/src/main/java/com/zteits/admin/config/SecuritySecureConfig.java @@ -0,0 +1,42 @@ +package com.zteits.admin.config; + +import de.codecentric.boot.admin.server.config.AdminServerProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; +import org.springframework.security.web.csrf.CookieCsrfTokenRepository; + +@Configuration +@EnableWebSecurity +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 { + 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/**" + ); + // @formatter:on + } +} \ No newline at end of file diff --git a/zteits-project-admin/src/main/resources/application.yml b/zteits-project-admin/src/main/resources/application.yml new file mode 100644 index 0000000..1db114c --- /dev/null +++ b/zteits-project-admin/src/main/resources/application.yml @@ -0,0 +1,13 @@ +spring: + boot: + admin: + ui: + brand: ZTEITS-CLOUDS-ADMIN + title: ZTEITS-CLOUDS-ADMIN + security: + user: + name: zteits-admin + password: ZTE1zte1 +logging: + level: + root: info diff --git a/zteits-project-admin/zteits-project-admin.iml b/zteits-project-admin/zteits-project-admin.iml new file mode 100644 index 0000000..c1b6272 --- /dev/null +++ b/zteits-project-admin/zteits-project-admin.iml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- libgit2 0.21.4