//package com.iplatform.base.config;
|
//
|
//import com.alibaba.druid.support.http.StatViewServlet;
|
//import com.alibaba.druid.support.http.WebStatFilter;
|
//import com.alibaba.druid.wall.WallConfig;
|
//import com.alibaba.druid.wall.WallFilter;
|
//import com.iplatform.core.PlatformConfiguration;
|
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
//import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Configuration;
|
//
|
//import javax.sql.DataSource;
|
//import java.util.HashMap;
|
//import java.util.Map;
|
//
|
//@Configuration
|
//@ConditionalOnProperty(prefix = "iplatform.api", name = "time-enabled", havingValue = "true", matchIfMissing = false)
|
//public class DruidMonitorConfig extends PlatformConfiguration {
|
//
|
//// @Bean(name="dataSource")
|
//// public DataSource dataSource(){
|
//// return (DataSource)JdbcInspector.getInstance().getPrimaryDataSourceMeta();
|
//// }
|
//
|
// /**
|
// * MethodName: statViewServlet
|
// * Description: 配置 Druid 监控管理后台的Servlet,
|
// * 内置 Servlet 容器时没有web.xml文件,所以使用 Spring Boot 的注册 Servlet 方式
|
// *
|
// * @return org.springframework.boot.web.servlet.ServletRegistrationBean
|
// * @author Tianjiao
|
// * @date 2021/5/27 10:11
|
// * @params: []
|
// */
|
// @Bean
|
// public ServletRegistrationBean<StatViewServlet> statViewServlet() {
|
// ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
|
//
|
// // 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet
|
// // 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到
|
// Map<String, String> initParams = new HashMap<>();
|
// //后台管理界面的登录账号
|
// initParams.put("loginUsername", "druid");
|
// //后台管理界面的登录密码
|
// initParams.put("loginPassword", "druid");
|
//
|
// //后台允许谁可以访问
|
// //initParams.put("allow", "localhost"):表示只有本机可以访问
|
// //initParams.put("allow", ""):为空或者为null时,表示允许所有访问
|
// initParams.put("allow", "");
|
// //deny:Druid 后台拒绝谁访问
|
// //initParams.put("tianjiao", "192.168.1.20");表示禁止此ip访问
|
//
|
// //设置初始化参数
|
// bean.setInitParameters(initParams);
|
// logger.info("druid监控设置参数 = {}", initParams);
|
// return bean;
|
// }
|
//
|
// @Bean("webStatFilter")
|
// public FilterRegistrationBean<WebStatFilter> webStatFilter(DataSource dataSource) {
|
// FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>();
|
//// WebStatFilter webStatFilter = new WebStatFilter();
|
//// WebAppStat webAppStat = new WebAppStat();
|
// bean.setFilter(new WebStatFilter());
|
// Map<String, String> initParams = new HashMap<>();
|
//// 这些东西不进行统计
|
// initParams.put("exclusions", "*.js,*.css,/druid/*");
|
// bean.setInitParameters(initParams);
|
//// bean.setUrlPatterns(Arrays.asList("/*"));
|
// bean.addUrlPatterns("/*");
|
// logger.info("druid WebStatFilter = {}", initParams);
|
//
|
//// List<Filter> filters = new ArrayList<>(4);
|
//// filters.add(bean.getFilter());
|
//// DruidDataSource druidDataSource = (DruidDataSource)dataSource;
|
//// druidDataSource.setProxyFilters(filters);
|
// return bean;
|
// }
|
//
|
// @Bean
|
// public WallFilter wallFilter(){
|
// WallFilter wallFilter = new WallFilter();
|
// wallFilter.setConfig(wallConfig());
|
//
|
// //
|
//// DruidDataSource druidDataSource = (DruidDataSource)dataSource;
|
//// try {
|
//// druidDataSource.setFilters("webStatFilter");
|
//// } catch (SQLException e) {
|
//// throw new RuntimeException(e);
|
//// }
|
//
|
//// StatFilter statFilter = new StatFilter();
|
//// statFilter.setLogSlowSql(true);
|
//// statFilter.setSlowSqlMillis(200);
|
////
|
//// List<Filter> filters = new ArrayList<>(4);
|
//// filters.add(statFilter);
|
//// druidDataSource.setProxyFilters(filters);
|
//// logger.info("--------------> 设置了druid过滤器!");
|
//
|
// return wallFilter;
|
// }
|
//
|
// @Bean
|
// public WallConfig wallConfig(){
|
// WallConfig wallConfig = new WallConfig();
|
// wallConfig.setMultiStatementAllow(true);
|
// //允许一次执行多条语句
|
// wallConfig.setNoneBaseStatementAllow(true);
|
// //是否允许非以上基本语句的其他语句
|
// wallConfig.setStrictSyntaxCheck(false);
|
// //是否进行严格的语法检测
|
// return wallConfig;
|
// }
|
//}
|