Prechádzať zdrojové kódy

v 2.9.0 & maxkey-boot-monitor

v 2.9.0 & maxkey-boot-monitor
MaxKey 3 rokov pred
rodič
commit
ec0518f7c1

+ 1 - 1
maxkey-core/src/main/java/org/maxkey/entity/GroupMember.java

@@ -30,7 +30,7 @@ import javax.persistence.Table;
 /*
    ID                   varchar(40)                    not null,
    APPROLEID            varchar(40)                    null,
-   UID	                varchar(40)	                   null
+   USERID	                varchar(40)	                   null
    constraint PK_ROLES primary key clustered (ID)
  */
 @Entity

+ 30 - 0
maxkey-webs/maxkey-boot-monitor/build.gradle

@@ -0,0 +1,30 @@
+description = "maxkey-boot-monitor"
+
+//add support for Java
+apply plugin: 'java'
+
+dependencies {
+    implementation project(":maxkey-common")
+    
+    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: "${springBootVersion}"
+    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: "${springBootVersion}"
+    implementation group: 'org.springframework.security', name: 'spring-security-config', version: '5.5.1'
+    
+    implementation group: 'de.codecentric', name: 'spring-boot-admin-server', version: "${springbootadminVersion}"
+    implementation group: 'de.codecentric', name: 'spring-boot-admin-server-ui', version: "${springbootadminVersion}"
+    implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-server', version: "${springbootadminVersion}"
+    
+    implementation group: 'org.thymeleaf', name: 'thymeleaf', version: "${thymeleafVersion}"
+    implementation group: 'org.thymeleaf', name: 'thymeleaf-spring5', version: "${thymeleafVersion}"
+    
+   	implementation group: 'io.projectreactor.netty', name: 'reactor-netty', version: "${reactornettyVersion}"
+   	implementation group: 'io.projectreactor.netty', name: 'reactor-netty-http', version: "${reactornettyVersion}"
+   	implementation group: 'io.projectreactor.netty', name: 'reactor-netty-core', version: "${reactornettyVersion}"
+   	implementation group: 'io.projectreactor.addons', name: 'reactor-extra', version: "${reactorextraVersion}"
+   	
+   	implementation group: 'io.netty', name: 'netty-all', version: "${nettyVersion}"
+   	implementation group: 'com.hazelcast', name: 'hazelcast', version: "${hazelcastVersion}"
+   	implementation group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}"
+   	implementation group: 'org.attoparser', name: 'attoparser', version: "${attoparserVersion}"
+   	implementation group: 'org.unbescape', name: 'unbescape', version: "${unbescapeVersion}"
+}

+ 7 - 0
maxkey-webs/maxkey-boot-monitor/readme.txt

@@ -0,0 +1,7 @@
+maxkey monitor service 
+
+spring-boot-admin-server 
+version 2.5.0
+Admin UI for administration of spring boot applications
+https://github.com/codecentric/spring-boot-admin
+Apache-2.0 License

+ 31 - 0
maxkey-webs/maxkey-boot-monitor/src/main/java/org/maxkey/boot/monitor/MaxKeyBootMonitor.java

@@ -0,0 +1,31 @@
+package org.maxkey.boot.monitor;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.context.annotation.Configuration;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
+
+import de.codecentric.boot.admin.server.config.EnableAdminServer;
+
+@Configuration
+@EnableAdminServer
+@SpringBootApplication(
+        exclude={
+                RedisAutoConfiguration.class,
+                DruidDataSourceAutoConfigure.class,
+                DataSourceAutoConfiguration.class
+})
+public class MaxKeyBootMonitor {
+    
+    private static final Logger _logger = LoggerFactory.getLogger(MaxKeyBootMonitor.class);
+    
+    public static void main(String[] args) {
+        _logger.info("Start MaxKeyBootMonitor ...");
+        SpringApplication.run(MaxKeyBootMonitor.class, args);
+    }
+}

+ 45 - 0
maxkey-webs/maxkey-boot-monitor/src/main/java/org/maxkey/boot/monitor/MonitorSecurityConfigurer.java

@@ -0,0 +1,45 @@
+package org.maxkey.boot.monitor;
+
+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 MonitorSecurityConfigurer extends WebSecurityConfigurerAdapter {
+
+
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        // 登录成功处理类
+        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
+        successHandler.setTargetUrlParameter("redirectTo");
+        successHandler.setDefaultTargetUrl("/");
+
+        http.authorizeRequests()
+                //无需认证
+                .antMatchers(
+                            "/login",           //登录页面
+                            "/assets/**",       //静态文件允许访问
+                            "/actuator/**",     //springboot-admin监控的请求
+                            "/instances/**"     //springboot-admin监控的实例信息请求
+                ).permitAll()
+                //其他所有请求需要登录
+                .anyRequest().authenticated()
+                //登录
+                .and().formLogin().loginPage("/login").successHandler(successHandler)
+                //登出
+                .and().logout().logoutUrl("/logout").logoutSuccessUrl("/login")
+                .and().httpBasic()
+                .and().csrf()
+                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
+                .ignoringAntMatchers(
+                        "/instances",
+                        "/actuator/**"
+                );
+
+    }
+}

+ 26 - 0
maxkey-webs/maxkey-boot-monitor/src/main/resources/application.properties

@@ -0,0 +1,26 @@
+############################################################################
+#  Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
+#  
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#  
+#      http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+############################################################################
+#MaxKey Title and Version                                                  #
+############################################################################
+application.title=MaxKey
+spring.application.name=maxkey-boot-admin-server
+application.formatted-version=v2.9.0 GA
+
+server.port=9528
+
+spring.security.user.name=monitor
+spring.security.user.password=maxkey
+spring.security.basic.enabled=false

+ 32 - 0
maxkey-webs/maxkey-boot-monitor/src/main/resources/log4j2.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>  
+<Configuration status="INFO"  monitorInterval="300">  
+    <Appenders>  
+        <Console name="consolePrint" target="SYSTEM_OUT">  
+            <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} %-5level [%t] %logger{36}:%L - %msg%n" />  
+        </Console>
+   
+		<!-- 输出到文件,按天或者超过128MB分割  每天进行归档yyyy-MM-dd -->
+		<RollingFile name="RollingFile" fileName="logs/maxkey-boot-admin.log"    filePattern="logs/$${date:yyyyMMdd}/maxkey-boot-admin-%d{yyyy-MM-dd}-%i.log.gz">
+		    <!-- 需要记录的级别 -->
+		 	<!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> -->
+		     <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss,SSS} %-5level [%t] %logger{36}:%L - %msg%n" />
+		     <Policies>
+		          <OnStartupTriggeringPolicy />
+		          <TimeBasedTriggeringPolicy />
+		          <SizeBasedTriggeringPolicy size="128 MB" />
+		     </Policies>
+		     <DefaultRolloverStrategy max="100"/>
+		</RollingFile>
+	 </Appenders>  
+	 
+    <Loggers>  
+    	<Logger level="INFO"	name="org.springframework" ></Logger>
+    	<Logger level="INFO"	name="org.apache.logging" ></Logger>
+    	<Logger level="DEBUG"	name="org.maxkey" ></Logger>
+    	
+        <Root  level="INFO">  
+            <AppenderRef  ref="consolePrint" />
+            <AppenderRef  ref="RollingFile" /> 
+        </Root >  
+    </Loggers>  
+</Configuration>