Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
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
赵啸非
smart_gov_platform
Commits
70a9c4d1
Commit
70a9c4d1
authored
Nov 17, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加资源自动刷新获取
parent
11274a1d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
9 deletions
+25
-9
portal-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java
...s/xhx/base/framework/interceptor/AuthUserInterceptor.java
+25
-9
No files found.
portal-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java
View file @
70a9c4d1
...
...
@@ -4,14 +4,19 @@ import com.alibaba.druid.support.http.ResourceServlet;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.service.IAuthTokenService
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.util.AESUtil
;
import
com.mortals.framework.utils.ServletUtils
;
import
com.mortals.framework.web.interceptor.BaseInterceptor
;
import
com.mortals.xhx.base.framework.config.InterceptorConfig
;
import
com.mortals.xhx.base.system.resource.service.ResourceService
;
import
com.mortals.xhx.common.key.RedisKey
;
import
com.mortals.xhx.common.utils.MenuEncodeUtil
;
import
com.mortals.xhx.module.user.model.UserEntity
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.ParameterResolutionDelegate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.method.HandlerMethod
;
...
...
@@ -20,6 +25,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.lang.reflect.Method
;
import
java.util.Set
;
/**
* 用户权限验证,基于token
...
...
@@ -34,6 +40,10 @@ public class AuthUserInterceptor extends BaseInterceptor {
private
InterceptorConfig
config
;
@Autowired
private
IAuthTokenService
authTokenService
;
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
ResourceService
resourceService
;
@Override
public
int
getOrder
()
{
...
...
@@ -45,7 +55,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
throws
Exception
{
JSONObject
ret
=
new
JSONObject
();
try
{
if
(
handler
instanceof
HandlerMethod
)
{
if
(
handler
instanceof
HandlerMethod
)
{
HandlerMethod
handlerMethod
=
(
HandlerMethod
)
handler
;
Method
method
=
handlerMethod
.
getMethod
();
UnAuth
annotation
=
method
.
getAnnotation
(
UnAuth
.
class
);
...
...
@@ -53,7 +63,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
//取消校验
return
true
;
}
}
else
if
(
handler
instanceof
ResourceHttpRequestHandler
)
{
}
else
if
(
handler
instanceof
ResourceHttpRequestHandler
)
{
return
true
;
}
String
uri
=
request
.
getServletPath
();
...
...
@@ -64,13 +74,13 @@ public class AuthUserInterceptor extends BaseInterceptor {
if
(!
auth
)
{
//不存在时候 如果是管理员也不做拦截
IUser
loginUser
=
authTokenService
.
getLoginUser
(
request
);
if
(
ObjectUtils
.
isEmpty
(
loginUser
))
{
if
(
ObjectUtils
.
isEmpty
(
loginUser
))
{
ret
.
put
(
"code"
,
401
);
ret
.
put
(
"msg"
,
"用户未登录或登录失效,请重新登录"
);
ServletUtils
.
renderString
(
response
,
JSONObject
.
toJSONString
(
ret
));
return
false
;
// }else if(loginUser.isAdmin()||loginUser.getUserType()==1){
}
else
if
(
loginUser
.
isAdmin
())
{
// }else if(loginUser.isAdmin()||loginUser.getUserType()==1){
}
else
if
(
loginUser
.
isAdmin
())
{
return
super
.
preHandle
(
request
,
response
,
handler
);
}
else
{
ret
.
put
(
"code"
,
-
1
);
...
...
@@ -81,7 +91,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"权限校验拦截请求处理异常-->"
+
e
.
getMessage
(),
e
);
log
.
error
(
"权限校验拦截请求处理异常-->"
+
e
.
getMessage
(),
e
);
writeJsonResponse
(
response
,
HttpServletResponse
.
SC_INTERNAL_SERVER_ERROR
,
"用户权限校验异常"
);
return
false
;
}
...
...
@@ -91,9 +101,16 @@ public class AuthUserInterceptor extends BaseInterceptor {
private
boolean
checkAuth
(
HttpServletRequest
request
,
String
requestUrl
,
String
securityKey
)
throws
Exception
{
int
code
=
requestUrl
.
hashCode
()
&
(
Integer
.
MAX_VALUE
-
1
);
IUser
loginUser
=
authTokenService
.
getLoginUser
(
request
);
IUser
loginUser
=
authTokenService
.
getLoginUser
(
request
);
if
(
ObjectUtils
.
isEmpty
(
loginUser
))
return
false
;
String
menuUrl
=
loginUser
.
getMenuUrl
();
String
menuUrl
=
cacheService
.
hget
(
RedisKey
.
KEY_USER_MENU_CACHE
,
loginUser
.
getId
().
toString
(),
String
.
class
);
if
(
ObjectUtils
.
isEmpty
(
menuUrl
))
{
Set
<
String
>
urls
=
resourceService
.
findUrlSetByUserId
(
loginUser
.
getId
());
menuUrl
=
MenuEncodeUtil
.
generateMenuUrlCode
(
urls
);
cacheService
.
hset
(
RedisKey
.
KEY_USER_MENU_CACHE
,
loginUser
.
getId
().
toString
(),
menuUrl
);
}
//String menuUrl = loginUser.getMenuUrl();
if
(
ObjectUtils
.
isEmpty
(
menuUrl
))
return
false
;
menuUrl
=
AESUtil
.
decrypt
(
menuUrl
,
securityKey
);
String
codes
=
","
+
menuUrl
+
","
;
...
...
@@ -105,5 +122,4 @@ public class AuthUserInterceptor extends BaseInterceptor {
}
}
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