123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.sky.ioc.config;
- import com.sky.ioc.constant.Constant;
- import com.sky.ioc.tool.JwtUtil;
- import com.sky.ioc.tool.RedisUtil;
- import com.sky.ioc.tool.ReturnMsg;
- import lombok.extern.slf4j.Slf4j;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.annotation.Around;
- import org.aspectj.lang.annotation.Aspect;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.util.StringUtils;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.servlet.http.HttpServletRequest;
- import java.util.Objects;
- @Slf4j
- @Component
- @Aspect
- public class LoginAspect {
- @Autowired
- private RedisUtil redisUtil;
- // @Around("execution(* com.sky.ioc..*Controller.*(..))")
- public Object aroundLog(ProceedingJoinPoint joinPoint) throws Throwable {
- ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- HttpServletRequest request = sra.getRequest();
- if (request.getServletPath().contains("login")) {
- return joinPoint.proceed(joinPoint.getArgs());
- }
- String token = request.getHeader("token");
- if (StringUtils.hasText(token)) {
- String username = JwtUtil.parseJWT(token) ;
- Object o = redisUtil.get("login:" + username);
- if (!Objects.isNull(o)) {
- return joinPoint.proceed(joinPoint.getArgs());
- }
- }
- return ReturnMsg.fail(Constant.MSG_CODE.LOGIN_TIMEOUT, "当前未登录");
- }
- }
|