//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() { // ServletRegistrationBean bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); // // // 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet // // 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到 // Map 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(DataSource dataSource) { // FilterRegistrationBean bean = new FilterRegistrationBean<>(); //// WebStatFilter webStatFilter = new WebStatFilter(); //// WebAppStat webAppStat = new WebAppStat(); // bean.setFilter(new WebStatFilter()); // Map initParams = new HashMap<>(); //// 这些东西不进行统计 // initParams.put("exclusions", "*.js,*.css,/druid/*"); // bean.setInitParameters(initParams); //// bean.setUrlPatterns(Arrays.asList("/*")); // bean.addUrlPatterns("/*"); // logger.info("druid WebStatFilter = {}", initParams); // //// List 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 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; // } //}