WangHan
2025-04-02 a8ba678a3fe5a39da2c732014cebbb66e408e97c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//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;
//    }
//}