From 1c11d7ccc125366ff12efa4770749e389aba01fb Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 09 七月 2021 15:30:40 +0800 Subject: [PATCH] update 转移 springboot-admin 到扩展模块项目 --- ruoyi-extend/ruoyi-monitor-admin/pom.xml | 33 ++++++ ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/AdminServerConfig.java | 31 ++++++ /dev/null | 63 ------------ ruoyi-extend/pom.xml | 18 +++ ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/MonitorAdminApplication.java | 19 +++ ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 7 - ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml | 11 ++ ruoyi-ui/src/views/monitor/admin/index.vue | 2 pom.xml | 1 ruoyi-admin/src/main/resources/application.yml | 11 +- ruoyi-common/pom.xml | 4 ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java | 48 +++++++++ 12 files changed, 168 insertions(+), 80 deletions(-) diff --git a/pom.xml b/pom.xml index d71181b..34be51b 100644 --- a/pom.xml +++ b/pom.xml @@ -198,6 +198,7 @@ <module>ruoyi-generator</module> <module>ruoyi-common</module> <module>ruoyi-demo</module> + <module>ruoyi-extend</module> </modules> <packaging>pom</packaging> diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 4d48a97..3352d1d 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -64,6 +64,8 @@ # Spring閰嶇疆 spring: + application: + name: ${ruoyi.name} # 璧勬簮淇℃伅 messages: # 鍥介檯鍖栬祫婧愭枃浠惰矾寰� @@ -317,18 +319,16 @@ --- # 鐩戞帶閰嶇疆 spring: - application: - name: ruoyi-vue-plus boot: admin: # Spring Boot Admin Client 瀹㈡埛绔殑鐩稿叧閰嶇疆 client: # 璁剧疆 Spring Boot Admin Server 鍦板潃 - url: http://localhost:${server.port}${spring.boot.admin.context-path} + url: http://localhost:9090/admin instance: prefer-ip: true # 娉ㄥ唽瀹炰緥鏃讹紝浼樺厛浣跨敤 IP - # Spring Boot Admin Server 鏈嶅姟绔殑鐩稿叧閰嶇疆 - context-path: /admin # 閰嶇疆 Spring + username: ruoyi + password: 123456 # Actuator 鐩戞帶绔偣鐨勯厤缃」 management: @@ -338,6 +338,7 @@ base-path: /actuator exposure: # 闇�瑕佸紑鏀剧殑绔偣銆傞粯璁ゅ�煎彧鎵撳紑 health 鍜� info 涓や釜绔偣銆傞�氳繃璁剧疆 * 锛屽彲浠ュ紑鏀炬墍鏈夌鐐广�� + # 鐢熶骇鐜涓嶅缓璁斁寮�鎵�鏈� 鏍规嵁椤圭洰闇�姹傛斁寮�鍗冲彲 include: '*' endpoint: logfile: diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index aeafac8..47b9a55 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -118,10 +118,6 @@ <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> diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml new file mode 100644 index 0000000..99a2594 --- /dev/null +++ b/ruoyi-extend/pom.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>ruoyi-vue-plus</artifactId> + <groupId>com.ruoyi</groupId> + <version>2.4.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>ruoyi-extend</artifactId> + <packaging>pom</packaging> + + <modules> + <module>ruoyi-monitor-admin</module> + </modules> + +</project> diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml new file mode 100644 index 0000000..c6ef485 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>ruoyi-extend</artifactId> + <groupId>com.ruoyi</groupId> + <version>2.4.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <packaging>jar</packaging> + <artifactId>ruoyi-monitor-admin</artifactId> + + <dependencies> + <!-- SpringWeb妯″潡 --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + + <!-- spring security 瀹夊叏璁よ瘉 --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </dependency> + + <dependency> + <groupId>de.codecentric</groupId> + <artifactId>spring-boot-admin-starter-server</artifactId> + </dependency> + </dependencies> + +</project> diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/MonitorAdminApplication.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/MonitorAdminApplication.java new file mode 100644 index 0000000..1d1cbca --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/MonitorAdminApplication.java @@ -0,0 +1,19 @@ +package com.ruoyi.monitor.admin; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * Admin 鐩戞帶鍚姩绋嬪簭 + * + * @author Lion Li + */ +@SpringBootApplication +public class MonitorAdminApplication { + + public static void main(String[] args) { + SpringApplication.run(MonitorAdminApplication.class, args); + System.out.println("Admin 鐩戞帶鍚姩鎴愬姛" ); + } + +} diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/AdminServerConfig.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/AdminServerConfig.java new file mode 100644 index 0000000..e2a9c51 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/AdminServerConfig.java @@ -0,0 +1,31 @@ +package com.ruoyi.monitor.admin.config; + +import de.codecentric.boot.admin.server.config.EnableAdminServer; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration; +import org.springframework.boot.task.TaskExecutorBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; + +/** + * springboot-admin server閰嶇疆绫� + * + * @author Lion Li + */ +@Configuration +@EnableAdminServer +public class AdminServerConfig { + + @Lazy + @Bean(name = TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME) + @ConditionalOnMissingBean(Executor.class) + public ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder builder) { + return builder.build(); + } + + +} diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java new file mode 100644 index 0000000..98834a9 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/com/ruoyi/monitor/admin/config/SecurityConfig.java @@ -0,0 +1,48 @@ +package com.ruoyi.monitor.admin.config; + +import de.codecentric.boot.admin.server.config.AdminServerProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +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; + +/** + * spring security閰嶇疆 + * + * @author ruoyi + */ +@Configuration +@EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, proxyTargetClass = true) +public class SecurityConfig extends WebSecurityConfigurerAdapter { + + private final String adminContextPath; + + public SecurityConfig(AdminServerProperties adminServerProperties) { + this.adminContextPath = adminServerProperties.getContextPath(); + } + + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception { + SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); + successHandler.setTargetUrlParameter("redirectTo"); + successHandler.setDefaultTargetUrl(adminContextPath + "/"); + + httpSecurity.authorizeRequests() + //鎺堜簣瀵规墍鏈夐潤鎬佽祫浜у拰鐧诲綍椤甸潰鐨勫叕鍏辫闂潈闄愩�� + .antMatchers(adminContextPath + "/assets/**").permitAll() + .antMatchers(adminContextPath + "/login").permitAll() + //蹇呴』瀵规瘡涓叾浠栬姹傝繘琛岃韩浠介獙璇� + .anyRequest().authenticated().and() + //閰嶇疆鐧诲綍鍜屾敞閿� + .formLogin().loginPage(adminContextPath + "/login") + .successHandler(successHandler).and() + .logout().logoutUrl(adminContextPath + "/logout").and() + //鍚敤HTTP-Basic鏀寔銆傝繖鏄疭pring Boot Admin Client娉ㄥ唽鎵�蹇呴渶鐨� + .httpBasic().and().csrf().disable() + .headers().frameOptions().disable(); + } + +} diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml new file mode 100644 index 0000000..631f3e7 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/resources/application.yml @@ -0,0 +1,11 @@ +server: + port: 9090 + +spring: + security: + user: + name: ruoyi + password: 123456 + boot: + admin: + context-path: /admin diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/AdminServerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/AdminServerConfig.java deleted file mode 100644 index 59fed50..0000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/AdminServerConfig.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.ruoyi.framework.config; - -import de.codecentric.boot.admin.server.config.EnableAdminServer; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration; -import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties; -import org.springframework.boot.task.TaskExecutorBuilder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import org.thymeleaf.dialect.IDialect; -import org.thymeleaf.spring5.ISpringTemplateEngine; -import org.thymeleaf.spring5.SpringTemplateEngine; -import org.thymeleaf.templateresolver.ITemplateResolver; - -import java.util.Comparator; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.concurrent.Executor; -import java.util.stream.Collectors; - -/** - * springboot-admin server閰嶇疆绫� - * - * @author Lion Li - */ -@Configuration -@EnableAdminServer -public class AdminServerConfig { - - @Lazy - @Bean(name = TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME) - @ConditionalOnMissingBean(Executor.class) - public ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder builder) { - return builder.build(); - } - - /** - * 瑙e喅 admin 涓� 椤圭洰 椤甸潰鐨勪氦鍙夊紩鐢� 灏� admin 鐨勮矾鐢辨斁鍒版渶鍚� - * @param properties - * @param templateResolvers - * @param dialects - * @return - */ - @Bean - @ConditionalOnMissingBean(ISpringTemplateEngine.class) - SpringTemplateEngine templateEngine(ThymeleafProperties properties, - ObjectProvider<ITemplateResolver> templateResolvers, ObjectProvider<IDialect> dialects) { - SpringTemplateEngine engine = new SpringTemplateEngine(); - engine.setEnableSpringELCompiler(properties.isEnableSpringElCompiler()); - engine.setRenderHiddenMarkersBeforeCheckboxes(properties.isRenderHiddenMarkersBeforeCheckboxes()); - templateResolvers.orderedStream().forEach(engine::addTemplateResolver); - dialects.orderedStream().forEach(engine::addDialect); - Set<ITemplateResolver> templateResolvers1 = engine.getTemplateResolvers(); - templateResolvers1 = templateResolvers1.stream() - .sorted(Comparator.comparing(ITemplateResolver::getOrder)) - .collect(Collectors.toCollection(LinkedHashSet::new)); - engine.setTemplateResolvers(templateResolvers1); - return engine; - } -} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 79ade78..920aa88 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -3,7 +3,6 @@ import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; -import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpMethod; @@ -56,9 +55,6 @@ */ @Autowired private CorsFilter corsFilter; - - @Autowired - private AdminServerProperties adminServerProperties; /** * 瑙e喅 鏃犳硶鐩存帴娉ㄥ叆 AuthenticationManager @@ -117,9 +113,6 @@ .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() - // Spring Boot Admin Server 鐨勫畨鍏ㄩ厤缃� - .antMatchers(adminServerProperties.getContextPath()).anonymous() - .antMatchers(adminServerProperties.getContextPath() + "/**").anonymous() // Spring Boot Actuator 鐨勫畨鍏ㄩ厤缃� .antMatchers("/actuator").anonymous() .antMatchers("/actuator/**").anonymous() diff --git a/ruoyi-ui/src/views/monitor/admin/index.vue b/ruoyi-ui/src/views/monitor/admin/index.vue index f1d48b0..012d92c 100644 --- a/ruoyi-ui/src/views/monitor/admin/index.vue +++ b/ruoyi-ui/src/views/monitor/admin/index.vue @@ -8,7 +8,7 @@ name: "Admin", data() { return { - src: process.env.VUE_APP_BASE_API + "/admin", + src: "http://localhost:9090/admin/login", height: document.documentElement.clientHeight - 94.5 + "px;", loading: true }; -- Gitblit v1.9.3