parent
6bb2dd273e
commit
c3662d9e09
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue