123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.zhentao.intercepoter;
- import com.zhentao.config.NullLogin;
- import com.zhentao.tool.TokenUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.stereotype.Component;
- import org.springframework.web.method.HandlerMethod;
- import org.springframework.web.servlet.HandlerInterceptor;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- @Component
- public class Userinterceptor implements HandlerInterceptor {
- @Autowired
- private RedisTemplate<String,String> redisTemplate;
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- String requestURI = request.getRequestURI();
- // if (requestURI.startsWith("/user/login")||requestURI.startsWith("/user/register")){
- // return true;
- // }
- String token = request.getHeader("token");
- if (token==null){
- System.err.println("Token不能为空");
- return false;
- }
- HandlerMethod handlerMethod = (HandlerMethod) handler;
- NullLogin annotation = handlerMethod.getMethod().getAnnotation(NullLogin.class);
- System.err.println("自定义注解"+annotation);
- if (annotation!=null){
- return true;
- }
- String userIdFromToken = TokenUtils.getUserIdFromToken(token);
- System.err.println("解析后的ID:"+userIdFromToken);
- String s = redisTemplate.opsForValue().get(userIdFromToken);
- if (s!=null){
- return true;
- }else {
- System.err.println("Token错误");
- return false;
- }
- }
- }
|