This commit is contained in:
2023-07-31 19:30:07 +08:00
parent f56d1338fc
commit c3d88a9d29
2 changed files with 14 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import cn.lihongjie.coal.common.RequestUtils;
import cn.lihongjie.coal.dto.R;
import cn.lihongjie.coal.entity.*;
import cn.lihongjie.coal.exception.BizException;
import cn.lihongjie.coal.service.SessionService;
import cn.lihongjie.coal.service.SysLogService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
@@ -42,12 +43,16 @@ public class ControllerAop {
}
@Autowired
SessionService sessionService;
@Around("controllerMethods()")
public Object call(ProceedingJoinPoint proceedingJoinPoint) {
Method method = ((MethodSignature) proceedingJoinPoint.getSignature()).getMethod();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
sessionService.rebuildSession(request.getHeader("X-Token"));
// 处理接口权限
@@ -67,6 +72,7 @@ public class ControllerAop {
} else {
if (!Ctx.isSysAdmin()) {
OrgAdmin orgAdmin = ObjectUtils.defaultIfNull(AnnotationUtils.findAnnotation(method, OrgAdmin.class), AnnotationUtils.findAnnotation(method.getClass(), OrgAdmin.class));

View File

@@ -107,7 +107,13 @@ public class SessionService {
}
public void buildSession(String sessionId){
public void rebuildSession(String sessionId) {
if (StringUtils.isEmpty(sessionId)) {
SecurityContextHolder.clearContext();
return;
}
String userId = stringRedisTemplate.opsForValue().getAndExpire(sessionId, 1, TimeUnit.HOURS);
@@ -121,6 +127,7 @@ public class SessionService {
context.setAuthentication(new MyAuthentication(null, user, sessionId));
SecurityContextHolder.setContext(context);
}