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