Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
isc-core
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
isc-v3.1-tmp
isc-core
Commits
a06d8e69
Commit
a06d8e69
authored
Sep 27, 2024
by
niewei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
esb修改get
parent
edb58cec
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
23 deletions
+35
-23
ISCRequestPreFilter.java
...com/brilliance/isc/common/filter/ISCRequestPreFilter.java
+35
-23
No files found.
isc-common-service/src/main/java/com/brilliance/isc/common/filter/ISCRequestPreFilter.java
View file @
a06d8e69
...
@@ -11,9 +11,12 @@ import com.brilliance.isc.vo.manager.SessionUserVo;
...
@@ -11,9 +11,12 @@ import com.brilliance.isc.vo.manager.SessionUserVo;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.ws.rs.container.ContainerRequestContext
;
import
javax.ws.rs.container.ContainerRequestContext
;
import
javax.ws.rs.container.ContainerRequestFilter
;
import
javax.ws.rs.container.ContainerRequestFilter
;
import
javax.ws.rs.core.Context
;
import
javax.ws.rs.core.Context
;
...
@@ -22,15 +25,10 @@ import java.io.IOException;
...
@@ -22,15 +25,10 @@ import java.io.IOException;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
public
class
ISCRequestPreFilter
implements
ContainerRequestFilte
r
{
public
class
ISCRequestPreFilter
implements
HandlerIntercepto
r
{
Logger
logger
=
LoggerFactory
.
getLogger
(
ISCRequestPreFilter
.
class
);
Logger
logger
=
LoggerFactory
.
getLogger
(
ISCRequestPreFilter
.
class
);
@Context
protected
HttpServletRequest
request
;
@Context
protected
HttpHeaders
header
;
@Resource
@Resource
protected
SettleContext
settleContext
;
protected
SettleContext
settleContext
;
...
@@ -41,17 +39,36 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
...
@@ -41,17 +39,36 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
@Resource
@Resource
protected
BizLocker
bizLocker
;
protected
BizLocker
bizLocker
;
private
void
clearUserLock
(
String
requestURI
,
SessionUserVo
sessionUserVo
){
if
(
requestURI
.
indexOf
(
"/logout"
)
>
-
1
){
logger
.
info
(
"退出释放等钱用户锁"
);
bizLocker
.
unlockAllOfUser
(
sessionUserVo
.
getLogName
());
logger
.
info
(
"Filter中锁释放完毕"
);
}
}
/**
* 避免因为异常导致ThreadLocal未被清理
*/
private
void
clearCache
(){
SettleContext
.
removeUserSession
();
SettleContext
.
removeSessionUserVo
();
BchServiceImpl
.
removeBranchCacheMap
();
BchServiceImpl
.
removeBchInrCacheMap
();
}
@Override
@Override
public
void
filter
(
ContainerRequestContext
requestContext
)
throws
IOException
{
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
IOException
{
clearCache
();
clearCache
();
String
requestURI
=
request
.
getRequestURI
();
String
requestURI
=
request
.
getRequestURI
();
logger
.
info
(
"本次请求的url["
+
requestURI
+
"]"
);
logger
.
info
(
"本次请求的url["
+
requestURI
+
"]"
);
if
(
requestURI
.
contains
(
"login/verify"
)
||
requestURI
.
contains
(
"login/changeRole"
)
||
requestURI
.
contains
(
"login/changeOrg"
)){
if
(
requestURI
.
contains
(
"login/verify"
)
||
requestURI
.
contains
(
"login/changeRole"
)
||
requestURI
.
contains
(
"login/changeOrg"
)){
return
;
return
true
;
}
}
//
//
String
token
=
request
Context
.
getHeaderString
(
"token"
);
String
token
=
request
.
getHeader
(
"token"
);
Long
currentExpireTime
=
redisTemplate
.
getExpire
(
token
);
Long
currentExpireTime
=
redisTemplate
.
getExpire
(
token
);
//判断token是否失效,失效则抛异常
//判断token是否失效,失效则抛异常
if
(
token
==
null
||
token
.
isEmpty
()
||
currentExpireTime
<=
0
){
if
(
token
==
null
||
token
.
isEmpty
()
||
currentExpireTime
<=
0
){
...
@@ -75,23 +92,18 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
...
@@ -75,23 +92,18 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
//没失效则刷新redis的过期时间(120分钟)
//没失效则刷新redis的过期时间(120分钟)
redisTemplate
.
expire
(
token
,
120
,
TimeUnit
.
MINUTES
);
redisTemplate
.
expire
(
token
,
120
,
TimeUnit
.
MINUTES
);
logger
.
info
(
"将用户的部分信息存入sessionUserVo中"
);
logger
.
info
(
"将用户的部分信息存入sessionUserVo中"
);
return
true
;
}
}
private
void
clearUserLock
(
String
requestURI
,
SessionUserVo
sessionUserVo
){
@Override
if
(
requestURI
.
indexOf
(
"/logout"
)
>
-
1
){
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
{
logger
.
info
(
"退出释放等钱用户锁"
);
System
.
out
.
println
(
"postHandle: "
+
request
.
getRequestURI
());
bizLocker
.
unlockAllOfUser
(
sessionUserVo
.
getLogName
());
logger
.
info
(
"Filter中锁释放完毕"
);
}
}
}
/**
@Override
* 避免因为异常导致ThreadLocal未被清理
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
*/
System
.
out
.
println
(
"afterCompletion: "
+
request
.
getRequestURI
());
private
void
clearCache
(){
SettleContext
.
removeUserSession
();
SettleContext
.
removeSessionUserVo
();
BchServiceImpl
.
removeBranchCacheMap
();
BchServiceImpl
.
removeBchInrCacheMap
();
}
}
}
}
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