From c3662d9e0974136be0432e02c94a96b6000c9302 Mon Sep 17 00:00:00 2001 From: Romesum Date: Tue, 5 May 2020 18:25:57 +0800 Subject: [PATCH] =?UTF-8?q?[feat][M]:=E6=96=B0=E5=A2=9EAOP=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/UserAuthorizeAspect.java | 51 +++++++++++++++++++ .../com/hzu/bookingsystem/filter/test.java | 0 2 files changed, 51 insertions(+) create mode 100644 java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java delete mode 100644 java/src/main/java/com/hzu/bookingsystem/filter/test.java diff --git a/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java b/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java new file mode 100644 index 0000000..8609788 --- /dev/null +++ b/java/src/main/java/com/hzu/bookingsystem/filter/UserAuthorizeAspect.java @@ -0,0 +1,51 @@ +package com.hzu.bookingsystem.filter; + +import com.hzu.bookingsystem.exception.UserAuthorizeException; +import com.hzu.bookingsystem.utils.CookieUtil; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +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.Cookie; +import javax.servlet.http.HttpServletRequest; + +/** + * author 吴志岳 + */ +@Aspect +@Component +public class UserAuthorizeAspect { + @Autowired + private StringRedisTemplate redisTemplate; + + @Pointcut("execution(public * com.hzu.bookingsystem.controller.*.*(..))" + + "&& !execution(public * com.hzu.bookingsystem.controller.UserController.login(..))") + public void verify() {} + + + @Before("verify()") + public void doVerify() { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + + //查询cookie + Cookie cookie = CookieUtil.get(request, "token"); + if (cookie == null) { + System.out.println("【登录校验】Cookie中查不到token"); + throw new UserAuthorizeException("未登录"); + } + + //去redis里查询 + String tokenValue = redisTemplate.opsForValue().get(cookie.getValue()); + if (StringUtils.isEmpty(tokenValue)) { + System.out.println("登陆已过期"); + throw new UserAuthorizeException(); + } + } +} diff --git a/java/src/main/java/com/hzu/bookingsystem/filter/test.java b/java/src/main/java/com/hzu/bookingsystem/filter/test.java deleted file mode 100644 index e69de29..0000000