Skip to content

Commit 0a71667

Browse files
yujunhao8831yujunhao
authored and
yujunhao
committed
升级
1 parent aa08f56 commit 0a71667

File tree

78 files changed

+1818
-1006
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1818
-1006
lines changed

goblin-basic-config/pom.xml

+1-7
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,7 @@
121121

122122
<dependency>
123123
<groupId>com.baomidou</groupId>
124-
<artifactId>mybatisplus-spring-boot-starter</artifactId>
125-
<scope>provided</scope>
126-
</dependency>
127-
128-
<dependency>
129-
<groupId>com.baomidou</groupId>
130-
<artifactId>mybatis-plus</artifactId>
124+
<artifactId>mybatis-plus-boot-starter</artifactId>
131125
<scope>provided</scope>
132126
</dependency>
133127

goblin-basic-config/src/main/java/com/goblin/config/MybatisPlusConfig.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.goblin.config;
22

3-
import com.baomidou.mybatisplus.plugins.PerformanceInterceptor;
3+
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
4+
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
45
import org.mybatis.spring.annotation.MapperScan;
56
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
67
import org.springframework.context.annotation.Bean;
@@ -25,6 +26,14 @@ public PerformanceInterceptor performanceInterceptor () {
2526
return new PerformanceInterceptor();
2627
}
2728

29+
30+
@Bean
31+
public LogicSqlInjector logicSqlInjector () {
32+
return new LogicSqlInjector();
33+
}
34+
35+
36+
2837
@MapperScan( { "com.goblin.manage.mapper" } )
2938
@Configuration
3039
public class MybatisPlusMapperScan {

goblin-basic-config/src/main/java/com/goblin/config/SpringConfig.java

+110-107
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.springframework.http.converter.HttpMessageConverter;
2424
import org.springframework.http.converter.StringHttpMessageConverter;
2525
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
26-
import org.springframework.web.filter.CharacterEncodingFilter;
2726
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
2827
import org.springframework.web.servlet.config.annotation.CorsRegistry;
2928
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -43,110 +42,114 @@
4342
public class SpringConfig implements WebMvcConfigurer, ErrorPageRegistrar {
4443

4544

46-
@Autowired(required = false)
47-
private InjectionAttackInterceptor injectionAttackInterceptor;
48-
49-
/**
50-
* <pre>
51-
* aidijing:
52-
* filter:
53-
* injection-attack-interceptor:
54-
* enabled: true
55-
*
56-
* </pre>
57-
*/
58-
@Bean
59-
@Order( Ordered.HIGHEST_PRECEDENCE )
60-
@ConditionalOnProperty( prefix = "aidijing.filter.injection-attack-interceptor", name = "enabled", havingValue = "true" )
61-
public InjectionAttackInterceptor injectionAttackInterceptor () {
62-
return new InjectionAttackInterceptor();
63-
}
64-
65-
66-
/**
67-
* 添加过滤器
68-
*
69-
* @return
70-
*/
71-
@Bean
72-
public FilterRegistrationBean filterRegistrationBean () {
73-
// 日志处理过滤器
74-
return new FilterRegistrationBean<>( new RequestLoggingFilter() );
75-
}
76-
77-
/**
78-
* 添加转换器
79-
*
80-
* @param registry
81-
*/
82-
@Override
83-
public void addFormatters ( FormatterRegistry registry ) {
84-
// 从前台过来的数据转换成对应类型的转换器,但是对 @RequestBody 注解的参数无效
85-
registry.addConverter( new StringToDateConverter() );
86-
}
87-
88-
@Bean
89-
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter () {
90-
ObjectMapper customizationMapper = JsonUtils.buildCustomizationMapper()
91-
// 设置格式化解析,支持多种,针对 @RequestBody 参数解析时,前端传入不同种类时间格式(以字符串形式)时能够正常解析.
92-
// 解析失败时会抛 HttpMessageNotReadableException 异常
93-
.setDateFormat( new SimpleDateFormatPro( DateFormatStyle.getDateFormatStyles() ) );
94-
return new MappingJackson2HttpMessageConverter( customizationMapper );
95-
}
96-
97-
/**
98-
* 消息转换
99-
*
100-
* @param converters
101-
*/
102-
@Override
103-
public void extendMessageConverters ( List< HttpMessageConverter< ? > > converters ) {
104-
// 默认转换器注册后, 插入自定义的请求响应转换器
105-
converters.add( new StringHttpMessageConverter( StandardCharsets.UTF_8 ) );
106-
converters.add( this.mappingJackson2HttpMessageConverter() );
107-
108-
}
109-
110-
111-
@Override
112-
public void addReturnValueHandlers ( List< HandlerMethodReturnValueHandler > returnValueHandlers ) {
113-
// 返回值的处理,可以用来处理敏感数据的显示
114-
}
115-
116-
@Override
117-
public void addInterceptors ( InterceptorRegistry registry ) {
118-
if ( Objects.nonNull( injectionAttackInterceptor ) ) {
119-
registry.addInterceptor( injectionAttackInterceptor ).addPathPatterns( "/**" );
120-
}
121-
}
122-
123-
/**
124-
* cors跨域处理
125-
*
126-
* @param registry
127-
*/
128-
@Override
129-
public void addCorsMappings ( CorsRegistry registry ) {
130-
registry.addMapping( "/**" )
131-
.allowedMethods(
132-
HttpMethod.HEAD.name() ,
133-
HttpMethod.GET.name() ,
134-
HttpMethod.POST.name() ,
135-
HttpMethod.PUT.name() ,
136-
HttpMethod.DELETE.name() ,
137-
HttpMethod.OPTIONS.name() ,
138-
HttpMethod.PATCH.name() ,
139-
HttpMethod.TRACE.name()
140-
)
141-
// 允许的域名
142-
.allowedOrigins( "*" );
143-
}
144-
145-
146-
@Override
147-
public void registerErrorPages ( ErrorPageRegistry registry ) {
148-
registry.addErrorPages( new ErrorPage( HttpStatus.NOT_FOUND , "/404" ) );
149-
registry.addErrorPages( new ErrorPage( HttpStatus.UNAUTHORIZED , "/401" ) );
150-
registry.addErrorPages( new ErrorPage( Throwable.class , "/500" ) );
151-
}
45+
@Autowired( required = false )
46+
private InjectionAttackInterceptor injectionAttackInterceptor;
47+
48+
/**
49+
* <pre>
50+
* goblin:
51+
* filter:
52+
* injection-attack-interceptor:
53+
* enabled: true
54+
*
55+
* </pre>
56+
*/
57+
@Bean
58+
@Order( Ordered.HIGHEST_PRECEDENCE )
59+
@ConditionalOnProperty( prefix = "goblin.filter.injection-attack-interceptor", name = "enabled", havingValue = "true" )
60+
public InjectionAttackInterceptor injectionAttackInterceptor () {
61+
return new InjectionAttackInterceptor();
62+
}
63+
64+
65+
/**
66+
* 添加过滤器
67+
*
68+
* @return
69+
*/
70+
@Bean
71+
public FilterRegistrationBean filterRegistrationBean () {
72+
String[] excludeUrlPatterns = { "*.js" , "*.jpg" , "*.png" , "*.css" , "*.html" , "*.gif" };
73+
// 日志处理过滤器
74+
return new FilterRegistrationBean<>( new RequestLoggingFilter().setExcludeUrlPatterns( excludeUrlPatterns ) );
75+
}
76+
77+
/**
78+
* 添加转换器
79+
*
80+
* @param registry
81+
*/
82+
@Override
83+
public void addFormatters ( FormatterRegistry registry ) {
84+
// 从前台过来的数据转换成对应类型的转换器,但是对 @RequestBody 注解的参数无效
85+
registry.addConverter( new StringToDateConverter() );
86+
}
87+
88+
@Bean
89+
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter () {
90+
ObjectMapper customizationMapper = JsonUtils.buildCustomizationMapper()
91+
// 设置格式化解析,支持多种,针对 @RequestBody 参数解析时,前端传入不同种类时间格式(以字符串形式)时能够正常解析.
92+
// 解析失败时会抛 HttpMessageNotReadableException 异常
93+
.setDateFormat( new SimpleDateFormatPro( DateFormatStyle.getDateFormatStyles() ) );
94+
return new MappingJackson2HttpMessageConverter( customizationMapper );
95+
}
96+
97+
/**
98+
* 消息转换
99+
*
100+
* @param converters
101+
*/
102+
@Override
103+
public void extendMessageConverters ( List< HttpMessageConverter< ? > > converters ) {
104+
// 默认转换器注册后, 插入自定义的请求响应转换器
105+
converters.add( new StringHttpMessageConverter( StandardCharsets.UTF_8 ) );
106+
converters.add( this.mappingJackson2HttpMessageConverter() );
107+
108+
}
109+
110+
111+
@Override
112+
public void addReturnValueHandlers ( List< HandlerMethodReturnValueHandler > returnValueHandlers ) {
113+
// 返回值的处理,可以用来处理敏感数据的显示
114+
}
115+
116+
@Override
117+
public void addInterceptors ( InterceptorRegistry registry ) {
118+
if ( Objects.nonNull( injectionAttackInterceptor ) ) {
119+
registry.addInterceptor( injectionAttackInterceptor ).addPathPatterns( "/**" );
120+
}
121+
}
122+
123+
/**
124+
* cors跨域处理
125+
*
126+
* @param registry
127+
*/
128+
@Override
129+
public void addCorsMappings ( CorsRegistry registry ) {
130+
registry.addMapping( "/**" )
131+
.allowedMethods(
132+
HttpMethod.HEAD.name() ,
133+
HttpMethod.GET.name() ,
134+
HttpMethod.POST.name() ,
135+
HttpMethod.PUT.name() ,
136+
HttpMethod.DELETE.name() ,
137+
HttpMethod.OPTIONS.name() ,
138+
HttpMethod.PATCH.name() ,
139+
HttpMethod.TRACE.name()
140+
)
141+
// 允许的域名
142+
.allowedOrigins( "*" );
143+
}
144+
145+
146+
@Override
147+
public void registerErrorPages ( ErrorPageRegistry registry ) {
148+
registry.addErrorPages( new ErrorPage( HttpStatus.NOT_FOUND , "/404" ) );
149+
registry.addErrorPages( new ErrorPage( HttpStatus.UNAUTHORIZED , "/401" ) );
150+
registry.addErrorPages( new ErrorPage( Throwable.class , "/500" ) );
151+
}
152+
153+
154+
152155
}

goblin-cache/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111

112112
<dependency>
113113
<groupId>com.baomidou</groupId>
114-
<artifactId>mybatisplus-spring-boot-starter</artifactId>
114+
<artifactId>mybatis-plus-boot-starter</artifactId>
115115
<scope>provided</scope>
116116
</dependency>
117117

goblin-common/pom.xml

+16
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,21 @@
221221
<version>4.6</version>
222222
</dependency>
223223

224+
<dependency>
225+
<groupId>org.jodd</groupId>
226+
<artifactId>jodd-core</artifactId>
227+
</dependency>
228+
229+
<dependency>
230+
<groupId>org.jodd</groupId>
231+
<artifactId>jodd-bean</artifactId>
232+
</dependency>
233+
234+
<dependency>
235+
<groupId>org.jodd</groupId>
236+
<artifactId>jodd-props</artifactId>
237+
</dependency>
238+
224239

225240
<dependency>
226241
<groupId>org.kie</groupId>
@@ -249,6 +264,7 @@
249264
</dependency>
250265

251266

267+
252268
</dependencies>
253269

254270
</project>

goblin-common/src/main/java/com/goblin/common/filter/RequestLoggingFilter.java

+25-12
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.goblin.common.util.LogUtils;
55
import com.goblin.common.util.RequestUtils;
66
import org.apache.commons.lang3.StringUtils;
7+
import org.springframework.util.PatternMatchUtils;
78

89
import javax.servlet.*;
910
import javax.servlet.http.HttpServletRequest;
@@ -17,28 +18,40 @@
1718
*/
1819
public class RequestLoggingFilter implements Filter {
1920

20-
private static final String PASSWORD_FILTER_REGEX =
21+
private static final String PASSWORD_FILTER_REGEX =
2122
"(password=\\[([\\S\\s])*\\])|(\"password\":\"([\\S\\s])*\")";
23+
private String[] excludeUrlPatterns;
2224

2325

2426
@Override
25-
public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain)
27+
public void doFilter ( ServletRequest request , ServletResponse response , FilterChain chain )
2628
throws IOException, ServletException {
27-
final BodyReaderWrapper wrapper = new BodyReaderWrapper((HttpServletRequest ) request);
28-
String requestMessage = RequestUtils.getRequestMessage(wrapper);
29-
if (!LogUtils.getLogger().isDebugEnabled()) {
30-
requestMessage = StringUtils.replaceAll( requestMessage, PASSWORD_FILTER_REGEX,
31-
"enable password protection, if not debug so do not see");
29+
30+
if ( PatternMatchUtils.simpleMatch( excludeUrlPatterns , ( ( HttpServletRequest ) request ).getRequestURI() ) ) {
31+
chain.doFilter( request , response );
32+
return;
33+
}
34+
35+
36+
final BodyReaderWrapper wrapper = new BodyReaderWrapper( ( HttpServletRequest ) request );
37+
String requestMessage = RequestUtils.getRequestMessage( wrapper );
38+
if ( ! LogUtils.getLogger().isDebugEnabled() ) {
39+
requestMessage = StringUtils.replaceAll( requestMessage , PASSWORD_FILTER_REGEX ,
40+
"enable password protection, if not debug so do not see"
41+
);
3242
}
33-
LogUtils.getLogger().info(requestMessage);
34-
chain.doFilter(wrapper, response);
43+
LogUtils.getLogger().info( requestMessage );
44+
chain.doFilter( wrapper , response );
3545
}
3646

3747
@Override
38-
public void init(FilterConfig filterConfig) {}
48+
public void init ( FilterConfig filterConfig ) { }
3949

4050
@Override
41-
public void destroy() {}
42-
51+
public void destroy () { }
4352

53+
public RequestLoggingFilter setExcludeUrlPatterns ( String[] excludeUrlPatterns ) {
54+
this.excludeUrlPatterns = excludeUrlPatterns;
55+
return this;
56+
}
4457
}

goblin-generator/pom.xml

+1-6
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
<dependency>
3333
<groupId>com.baomidou</groupId>
34-
<artifactId>mybatisplus-spring-boot-starter</artifactId>
34+
<artifactId>mybatis-plus-boot-starter</artifactId>
3535
</dependency>
3636

3737
<dependency>
@@ -49,11 +49,6 @@
4949
<artifactId>spring-boot-starter-test</artifactId>
5050
<scope>test</scope>
5151
</dependency>
52-
<dependency>
53-
<groupId>com.baomidou</groupId>
54-
<artifactId>mybatis-plus</artifactId>
55-
<scope>test</scope>
56-
</dependency>
5752

5853

5954
</dependencies>

0 commit comments

Comments
 (0)