Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-parent
Commits
b4c172e9
Commit
b4c172e9
authored
Nov 15, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update RequestLoggingFilter
parent
c58a4b13
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
51 additions
and
27 deletions
+51
-27
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java
...com/schbrain/common/web/servlet/RequestLoggingFilter.java
+9
-27
commons/web-common/src/main/java/com/schbrain/common/web/support/BaseOncePerRequestFilter.java
...schbrain/common/web/support/BaseOncePerRequestFilter.java
+42
-0
No files found.
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java
View file @
b4c172e9
package
com.schbrain.common.web.servlet
;
import
cn.hutool.core.text.CharPool
;
import
com.schbrain.common.web.support.BaseOncePerRequestFilter
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.boot.web.servlet.filter.OrderedFilter
;
import
org.springframework.core.Ordered
;
import
org.springframework.web.cors.CorsUtils
;
import
org.springframework.web.filter.OncePerRequestFilter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.ServletException
;
...
...
@@ -18,25 +15,15 @@ import static com.schbrain.common.web.utils.RequestContentCachingUtils.getReques
import
static
com
.
schbrain
.
common
.
web
.
utils
.
RequestContentCachingUtils
.
wrapIfRequired
;
/**
* 请求日志拦截器
* @author liaozan
* @since 2023/11/15
*/
@Slf4j
public
class
RequestLoggingFilter
extends
OncePerRequestFilter
implements
Ordered
Filter
{
public
class
RequestLoggingFilter
extends
BaseOncePerRequest
Filter
{
@Override
public
int
getOrder
()
{
return
Ordered
.
HIGHEST_PRECEDENCE
+
10
;
}
@Override
protected
void
doFilterInternal
(
HttpServletRequest
request
,
HttpServletResponse
response
,
FilterChain
chain
)
throws
ServletException
,
IOException
{
if
(
shouldSkip
(
request
))
{
chain
.
doFilter
(
request
,
response
);
return
;
}
protected
void
filterInternal
(
HttpServletRequest
request
,
HttpServletResponse
response
,
FilterChain
chain
)
throws
ServletException
,
IOException
{
request
=
wrapIfRequired
(
request
);
long
startTime
=
System
.
currentTimeMillis
();
try
{
chain
.
doFilter
(
request
,
response
);
...
...
@@ -46,12 +33,7 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere
}
}
protected
boolean
shouldSkip
(
HttpServletRequest
request
)
{
return
CorsUtils
.
isPreFlightRequest
(
request
);
}
protected
String
buildLogContent
(
HttpServletRequest
request
,
long
startTime
,
long
endTime
)
{
long
cost
=
endTime
-
startTime
;
String
method
=
request
.
getMethod
();
String
requestUri
=
request
.
getRequestURI
();
String
queryString
=
request
.
getQueryString
();
...
...
@@ -59,14 +41,14 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
"requestUri: "
).
append
(
method
).
append
(
CharPool
.
SPACE
).
append
(
requestUri
);
if
(
StringUtils
.
isNotBlank
(
queryString
))
{
builder
.
append
(
", query
String
: "
).
append
(
queryString
);
builder
.
append
(
", query: "
).
append
(
queryString
);
}
if
(
StringUtils
.
isNotBlank
(
requestBody
))
{
builder
.
append
(
", body: "
).
append
(
requestBody
);
}
builder
.
append
(
", start
Time
: "
).
append
(
startTime
);
builder
.
append
(
", end
Time
: "
).
append
(
endTime
);
builder
.
append
(
", cost: "
).
append
(
cost
).
append
(
"ms"
);
builder
.
append
(
", start: "
).
append
(
startTime
);
builder
.
append
(
", end: "
).
append
(
endTime
);
builder
.
append
(
", cost: "
).
append
(
endTime
-
startTime
).
append
(
"ms"
);
return
builder
.
toString
();
}
...
...
commons/web-common/src/main/java/com/schbrain/common/web/support/BaseOncePerRequestFilter.java
0 → 100644
View file @
b4c172e9
package
com.schbrain.common.web.support
;
import
org.springframework.boot.web.servlet.filter.OrderedFilter
;
import
org.springframework.core.Ordered
;
import
org.springframework.web.cors.CorsUtils
;
import
org.springframework.web.filter.OncePerRequestFilter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
/**
* @author liaozan
* @since 2023/11/15
*/
public
class
BaseOncePerRequestFilter
extends
OncePerRequestFilter
implements
OrderedFilter
{
@Override
public
int
getOrder
()
{
return
Ordered
.
HIGHEST_PRECEDENCE
+
10
;
}
@Override
protected
void
doFilterInternal
(
HttpServletRequest
request
,
HttpServletResponse
response
,
FilterChain
chain
)
throws
ServletException
,
IOException
{
if
(
shouldSkip
(
request
))
{
chain
.
doFilter
(
request
,
response
);
return
;
}
filterInternal
(
request
,
response
,
chain
);
}
protected
void
filterInternal
(
HttpServletRequest
request
,
HttpServletResponse
response
,
FilterChain
chain
)
throws
ServletException
,
IOException
{
}
protected
boolean
shouldSkip
(
HttpServletRequest
request
)
{
return
CorsUtils
.
isPreFlightRequest
(
request
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment