提交配置

This commit is contained in:
sgjj 2020-01-10 11:35:52 +08:00
parent 3034749495
commit 91959af754
5 changed files with 83 additions and 69 deletions

View File

@ -0,0 +1,65 @@
package net.mingsoft.config;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
import org.springframework.aop.Advisor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.aop.support.JdkRegexpMethodPointcut;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author by 铭飞开源团队
* @Description TODO
* @date 2020/1/10 11:21
*/
@Configuration
@ConditionalOnProperty(prefix="spring",name = "datasource.druid.stat-view-servlet.enabled", havingValue = "true")
public class DruidConfig {
/**
* druid监控 配置URI拦截策略
*/
@Bean
public FilterRegistrationBean druidStatFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// 添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
// 添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions",
"/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
// 用于session监控页面的用户名显示 需要登录后主动将username注入到session里
filterRegistrationBean.addInitParameter("principalSessionName", "username");
return filterRegistrationBean;
}
/**
* druid数据库连接池监控
*/
@Bean
public DruidStatInterceptor druidStatInterceptor() {
return new DruidStatInterceptor();
}
@Bean
public JdkRegexpMethodPointcut druidStatPointcut() {
JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
String patterns = "net.mingsoft.*.biz.*";
// 可以set多个
druidStatPointcut.setPatterns(patterns);
return druidStatPointcut;
}
/**
* druid 为druidStatPointcut添加拦截
*
* @return
*/
@Bean
public Advisor druidStatAdvisor() {
return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
}
}

View File

@ -49,11 +49,6 @@ public class WebConfig implements WebMvcConfigurer {
return new ActionInterceptor(); return new ActionInterceptor();
} }
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
// 启用.do后缀
configurer.setUseRegisteredSuffixPatternMatch(true);
}
/** /**
* 增加对rest api鉴权的spring mvc拦截器 * 增加对rest api鉴权的spring mvc拦截器
@ -82,48 +77,7 @@ public class WebConfig implements WebMvcConfigurer {
); );
} }
} }
/**
* druidServlet注册
*/
@Bean
public ServletRegistrationBean druidServletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
registration.addUrlMappings("/druid/*");
return registration;
}
/**
* druid监控 配置URI拦截策略
*/
@Bean
public FilterRegistrationBean druidStatFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
// 添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
// 添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions",
"/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
// 用于session监控页面的用户名显示 需要登录后主动将username注入到session里
filterRegistrationBean.addInitParameter("principalSessionName", "username");
return filterRegistrationBean;
}
/**
* druid数据库连接池监控
*/
@Bean
public DruidStatInterceptor druidStatInterceptor() {
return new DruidStatInterceptor();
}
@Bean
public JdkRegexpMethodPointcut druidStatPointcut() {
JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
String patterns = "net.mingsoft.*.biz.*";
// 可以set多个
druidStatPointcut.setPatterns(patterns);
return druidStatPointcut;
}
/** /**
* druid数据库连接池监控 * druid数据库连接池监控
@ -135,28 +89,18 @@ public class WebConfig implements WebMvcConfigurer {
beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor"); beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
return beanTypeAutoProxyCreator; return beanTypeAutoProxyCreator;
} }
// XSS过滤器
/** // @Bean
* druid 为druidStatPointcut添加拦截 // public FilterRegistrationBean xssFilterRegistration() {
* // XSSEscapeFilter xssFilter = new XSSEscapeFilter();
* @return // FilterRegistrationBean registration = new FilterRegistrationBean(xssFilter);
*/ // xssFilter.excludes.add(".*file/upload.do");
@Bean // xssFilter.excludes.add(".*/jsp/editor.do");
public Advisor druidStatAdvisor() { // xssFilter.excludes.add(".*/?(jpg|js|css|gif|png|ico)$");
return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); // xssFilter.excludes.add("/");
} // registration.addUrlPatterns("/*");
// return registration;
@Bean // }
public FilterRegistrationBean xssFilterRegistration() {
XSSEscapeFilter xssFilter = new XSSEscapeFilter();
FilterRegistrationBean registration = new FilterRegistrationBean(xssFilter);
xssFilter.excludes.add(".*file/upload.do");
xssFilter.excludes.add(".*/jsp/editor.do");
xssFilter.excludes.add(".*/?(jpg|js|css|gif|png|ico)$");
xssFilter.excludes.add("/");
registration.addUrlPatterns("/*");
return registration;
}
/** /**
* RequestContextListener注册 * RequestContextListener注册

View File

@ -1,6 +1,6 @@
spring: spring:
datasource: datasource:
url: jdbc:mysql://localhost:3306/db-mcms-open?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true url: jdbc:mysql://localhost:3306/db-mcms-open?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root username: root
password: root password: root
filters: wall,mergeStat filters: wall,mergeStat

View File

@ -33,6 +33,10 @@ ms:
spring: spring:
datasource:
druid:
stat-view-servlet:
enabled: true #启用druid监控
profiles: profiles:
active: dev active: dev
mvc: mvc:

View File

@ -225,4 +225,5 @@
window.ms = {}; window.ms = {};
} }
window.ms.util = util; window.ms.util = util;
window.ms.debug = false
}()); }());