-
Notifications
You must be signed in to change notification settings - Fork 8.5k
/
DruidFilterConfiguration.java
119 lines (105 loc) · 4.48 KB
/
DruidFilterConfiguration.java
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
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.druid.spring.boot.autoconfigure.stat;
import com.alibaba.druid.filter.config.ConfigFilter;
import com.alibaba.druid.filter.encoding.EncodingConvertFilter;
import com.alibaba.druid.filter.logging.*;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.wall.WallConfig;
import com.alibaba.druid.wall.WallFilter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
/**
* @author lihengming [89921218@qq.com]
*/
public class DruidFilterConfiguration {
@Bean
@ConfigurationProperties(FILTER_STAT_PREFIX)
@ConditionalOnProperty(prefix = FILTER_STAT_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public StatFilter statFilter() {
return new StatFilter();
}
@Bean
@ConfigurationProperties(FILTER_CONFIG_PREFIX)
@ConditionalOnProperty(prefix = FILTER_CONFIG_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public ConfigFilter configFilter() {
return new ConfigFilter();
}
@Bean
@ConfigurationProperties(FILTER_ENCODING_PREFIX)
@ConditionalOnProperty(prefix = FILTER_ENCODING_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public EncodingConvertFilter encodingConvertFilter() {
return new EncodingConvertFilter();
}
@Bean
@ConfigurationProperties(FILTER_SLF4J_PREFIX)
@ConditionalOnProperty(prefix = FILTER_SLF4J_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public Slf4jLogFilter slf4jLogFilter() {
return new Slf4jLogFilter();
}
@Bean
@ConfigurationProperties(FILTER_LOG4J_PREFIX)
@ConditionalOnProperty(prefix = FILTER_LOG4J_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public Log4jFilter log4jFilter() {
return new Log4jFilter();
}
@Bean
@ConfigurationProperties(FILTER_LOG4J2_PREFIX)
@ConditionalOnProperty(prefix = FILTER_LOG4J2_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public Log4j2Filter log4j2Filter() {
return new Log4j2Filter();
}
@Bean
@ConfigurationProperties(FILTER_COMMONS_LOG_PREFIX)
@ConditionalOnProperty(prefix = FILTER_COMMONS_LOG_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public CommonsLogFilter commonsLogFilter() {
return new CommonsLogFilter();
}
@Bean
@ConfigurationProperties(FILTER_WALL_CONFIG_PREFIX)
@ConditionalOnProperty(prefix = FILTER_WALL_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public WallConfig wallConfig() {
return new WallConfig();
}
@Bean
@ConfigurationProperties(FILTER_WALL_PREFIX)
@ConditionalOnProperty(prefix = FILTER_WALL_PREFIX, name = "enabled")
@ConditionalOnMissingBean
public WallFilter wallFilter(WallConfig wallConfig) {
WallFilter filter = new WallFilter();
filter.setConfig(wallConfig);
return filter;
}
private static final String FILTER_STAT_PREFIX = "spring.datasource.druid.filter.stat";
private static final String FILTER_CONFIG_PREFIX = "spring.datasource.druid.filter.config";
private static final String FILTER_ENCODING_PREFIX = "spring.datasource.druid.filter.encoding";
private static final String FILTER_SLF4J_PREFIX = "spring.datasource.druid.filter.slf4j";
private static final String FILTER_LOG4J_PREFIX = "spring.datasource.druid.filter.log4j";
private static final String FILTER_LOG4J2_PREFIX = "spring.datasource.druid.filter.log4j2";
private static final String FILTER_COMMONS_LOG_PREFIX = "spring.datasource.druid.filter.commons-log";
private static final String FILTER_WALL_PREFIX = "spring.datasource.druid.filter.wall";
private static final String FILTER_WALL_CONFIG_PREFIX = FILTER_WALL_PREFIX + ".config";
}