Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gdtel-gztel-school-center
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
吴学德
gdtel-gztel-school-center
Commits
ba96590e
Commit
ba96590e
authored
May 06, 2022
by
伍思炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复长时间未登录时需要修改密码但修改不了bug
parent
0faa7ed2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
136 additions
and
3 deletions
+136
-3
apply-net/src/main/java/com/winsun/aop/AuthorityAspect.java
+126
-0
apply-net/src/main/java/com/winsun/controller/codeManagerController.java
+7
-2
core-service/src/main/java/com/winsun/item/modular/config/LoginApplicaionConfig.java
+1
-0
service-manager/src/main/java/com/winsun/intercept/AuthConfigurationSupport.java
+2
-1
No files found.
apply-net/src/main/java/com/winsun/aop/AuthorityAspect.java
0 → 100644
View file @
ba96590e
package
com
.
winsun
.
aop
;
import
com.alibaba.fastjson.JSONObject
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.auth.core.shiro.ShiroUser
;
import
com.winsun.auth.core.support.HttpKit
;
import
com.winsun.auth.model.common.Menu
;
import
com.winsun.interfaces.PermissionVerification
;
import
com.winsun.mapper.SysUserMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
/**
* 基于服务层的权限切面
*
* @author Cocowwy
* @create 2021-11-11-13:59
*/
@Aspect
@Component
@Slf4j
public
class
AuthorityAspect
{
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
@Autowired
private
SysUserMapper
sysUserMapper
;
private
final
static
String
PERMISSION_VERIFICATION
=
"permissionVerification:"
;
private
final
static
Integer
CACHE_TIME
=
60
;
/**
* 对接口进行权限校验
*/
@Pointcut
(
"@annotation(com.winsun.interfaces.PermissionVerification)"
)
private
void
pointcut
()
{
}
@Around
(
"pointcut()"
)
public
Object
around
(
ProceedingJoinPoint
joinPoint
)
throws
Throwable
{
MethodSignature
signature
=
(
MethodSignature
)
joinPoint
.
getSignature
();
PermissionVerification
permissionVerification
=
signature
.
getMethod
().
getDeclaredAnnotation
(
PermissionVerification
.
class
);
if
(
permissionVerification
!=
null
)
{
return
apiIdempotent
(
joinPoint
,
signature
);
}
Object
proceed
=
joinPoint
.
proceed
();
return
proceed
;
}
public
Object
apiIdempotent
(
ProceedingJoinPoint
joinPoint
,
MethodSignature
signature
)
throws
Throwable
{
ShiroUser
user
=
getShiroUser
();
/*if (user.getRoleNames().stream().anyMatch(roleName -> StringUtils.equalsAny(roleName, "超级管理员"))) {
Object proceed = joinPoint.proceed();
return proceed;
}*/
PermissionVerification
permissionVerification
=
signature
.
getMethod
().
getDeclaredAnnotation
(
PermissionVerification
.
class
);
if
(
""
.
equals
(
permissionVerification
.
value
()[
0
])
||
user
==
null
)
{
log
.
error
(
"无权限"
);
return
false
;
}
List
<
Integer
>
roleList
=
user
.
getRoleList
();
if
(
roleList
.
size
()
==
0
)
{
log
.
error
(
"无权限"
);
return
false
;
}
String
key
=
PERMISSION_VERIFICATION
+
getHttpServletRequest
().
getHeader
(
"Authorization"
);
String
[]
values
=
permissionVerification
.
value
();
String
s
=
stringRedisTemplate
.
opsForValue
().
get
(
key
);
List
<
Menu
>
roleMenu
=
null
;
if
(
StringUtils
.
isNotBlank
(
s
))
{
roleMenu
=
JSONObject
.
parseArray
(
s
,
Menu
.
class
);
}
else
{
roleMenu
=
sysUserMapper
.
getRoleMenu
(
roleList
);
stringRedisTemplate
.
opsForValue
().
set
(
key
,
JSONObject
.
toJSONString
(
roleMenu
),
CACHE_TIME
,
TimeUnit
.
SECONDS
);
}
if
(
roleMenu
==
null
||
roleMenu
.
isEmpty
())
{
return
false
;
}
for
(
String
value
:
values
)
{
for
(
Menu
menu
:
roleMenu
)
{
if
(
menu
==
null
||
StringUtils
.
isBlank
(
menu
.
getUrl
()))
{
continue
;
}
if
(
StringUtils
.
equals
(
menu
.
getUrl
(),
value
))
{
Object
proceed
=
joinPoint
.
proceed
();
return
proceed
;
}
}
}
return
ResponseData
.
error
(
"无权限"
);
}
protected
ShiroUser
getShiroUser
()
{
HttpServletRequest
httpServletRequest
=
this
.
getHttpServletRequest
();
Object
Attr
=
httpServletRequest
.
getAttribute
(
"user"
);
ShiroUser
user
=
(
ShiroUser
)
JSONObject
.
parseObject
(
Attr
.
toString
(),
ShiroUser
.
class
);
return
user
;
}
protected
HttpServletRequest
getHttpServletRequest
()
{
return
HttpKit
.
getRequest
();
}
}
apply-net/src/main/java/com/winsun/controller/codeManagerController.java
View file @
ba96590e
...
...
@@ -2,8 +2,11 @@ package com.winsun.controller;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.winsun.auth.core.annotion.Permission
;
import
com.winsun.auth.core.base.controller.BaseController
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.bean.*
;
import
com.winsun.interfaces.PermissionVerification
;
import
com.winsun.mapper.*
;
import
com.winsun.smsUtils.SendSmsAndMail
;
import
com.winsun.utils.MyBatisPlusUpdateUtils
;
...
...
@@ -36,7 +39,7 @@ import java.util.regex.Pattern;
@Slf4j
@RestController
@RequestMapping
(
"/codesManager"
)
//
public
class
codeManagerController
{
public
class
codeManagerController
extends
BaseController
{
@Autowired
private
RegularMapper
regularMapper
;
@Autowired
...
...
@@ -81,7 +84,9 @@ public class codeManagerController {
* @return
*/
@ResponseBody
@RequestMapping
(
value
=
"unlock"
,
method
=
RequestMethod
.
POST
)
@PermissionVerification
(
value
=
{
"/system/user"
})
// @RequestMapping(value = "unlock", method = RequestMethod.POST)
@Permission
(
menuname
=
"解锁冻结"
,
value
=
"unlock"
,
method
=
RequestMethod
.
POST
)
public
ResponseData
<
String
>
unlock
(
String
userId
)
{
SysUser
sysUser
=
sysUserMapper
.
selectById
(
userId
);
...
...
core-service/src/main/java/com/winsun/item/modular/config/LoginApplicaionConfig.java
View file @
ba96590e
...
...
@@ -54,6 +54,7 @@ public class LoginApplicaionConfig extends WebMvcConfigurationSupport {
s
.
add
(
"/mgr/userByUerId"
);
s
.
add
(
"/mgr/releaseUser"
);
s
.
add
(
"/mgr/codemessage"
);
s
.
add
(
"/mgr/changePwd"
);
s
.
add
(
"/dept/selectDeptList"
);
s
.
add
(
"/dept/selectDept"
);
s
.
add
(
"/role/roleLable"
);
...
...
service-manager/src/main/java/com/winsun/intercept/AuthConfigurationSupport.java
View file @
ba96590e
...
...
@@ -45,7 +45,8 @@ public class AuthConfigurationSupport extends WebMvcConfigurationSupport {
s
.
add
(
"/school/schoolManagement/importDate"
);
s
.
add
(
"/networkPlace/importDate"
);
s
.
add
(
"/school/schoolManagement/qrcodeUpload"
);
s
.
add
(
"/school/schoolManagement/qrcodeUpload2"
);
s
.
add
(
"/packageManagement/package/backgroundUpload"
);
s
.
add
(
"/packageManagement/package/xiaotuUpload"
);
registry
.
addInterceptor
(
authIntercept
).
excludePathPatterns
(
s
);
...
...
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