This commit is contained in:
MaxKey
2022-04-09 10:05:51 +08:00
parent c845e140c5
commit 3ecf92240a
10 changed files with 5 additions and 5 deletions

View File

@@ -0,0 +1,50 @@
/*
* Copyright [2022] [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.
*/
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.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
@Configuration
@EnableAdminServer
@EnableDiscoveryClient
@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);
}
}

View File

@@ -0,0 +1,62 @@
/*
* Copyright [2022] [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.
*/
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/**"
);
}
}

View File

@@ -0,0 +1,31 @@
############################################################################
# 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
#for dynamic service discovery
spring.application.name =maxkey-monitor
application.formatted-version =v3.4.0 GA
#nacos discovery
spring.cloud.nacos.discovery.enabled =${NACOS_DISCOVERY_ENABLED:false}
spring.cloud.nacos.discovery.instance-enabled =false
spring.cloud.nacos.discovery.server-addr =${NACOS_DISCOVERY_SERVER_ADDR:127.0.0.1:8848}
server.port =9528
spring.security.user.name =monitor
spring.security.user.password =maxkey
spring.security.basic.enabled =false

View File

@@ -0,0 +1,12 @@
#nacos config
spring.cloud.nacos.config.server-addr =${NACOS_CONFIG_SERVER_ADDR:127.0.0.1:8848}
# Nacos Console add configuration:
# Data ID:maxkey.properties
# Group:DEFAULT_GROUP
# configuration:useLocalCache=true
spring.application.name =maxkey-monitor
# Suffix for the configuration. Supports properties,yaml,yml,default is properties
spring.cloud.nacos.config.file-extension =properties
#spring.cloud.nacos.config.file-extension=yaml
#nacos enabled
spring.cloud.nacos.config.enabled =${NACOS_CONFIG_ENABLED:false}

View File

@@ -0,0 +1,34 @@
<?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>
<Logger level="ERROR" name="org.reflections.Reflections" ></Logger>
<Logger level="OFF" name="org.hibernate.validator.internal.util.Version" ></Logger>
<Root level="INFO">
<AppenderRef ref="consolePrint" />
<AppenderRef ref="RollingFile" />
</Root >
</Loggers>
</Configuration>