commit
d678961a60
|
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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注册
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -33,6 +33,10 @@ ms:
|
||||||
|
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
stat-view-servlet:
|
||||||
|
enabled: true #启用druid监控
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: dev
|
||||||
mvc:
|
mvc:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -225,4 +225,5 @@
|
||||||
window.ms = {};
|
window.ms = {};
|
||||||
}
|
}
|
||||||
window.ms.util = util;
|
window.ms.util = util;
|
||||||
|
window.ms.debug = false
|
||||||
}());
|
}());
|
Loading…
Reference in New Issue