Userinterceptor.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.zhentao.intercepoter;
  2. import com.zhentao.config.NullLogin;
  3. import com.zhentao.tool.TokenUtils;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.data.redis.core.RedisTemplate;
  6. import org.springframework.stereotype.Component;
  7. import org.springframework.web.method.HandlerMethod;
  8. import org.springframework.web.servlet.HandlerInterceptor;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. @Component
  12. public class Userinterceptor implements HandlerInterceptor {
  13. @Autowired
  14. private RedisTemplate<String,String> redisTemplate;
  15. @Override
  16. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  17. String token = request.getHeader("token");
  18. HandlerMethod handlerMethod = (HandlerMethod) handler;
  19. NullLogin annotation = handlerMethod.getMethod().getAnnotation(NullLogin.class);
  20. System.err.println("自定义注解"+annotation);
  21. System.err.println(request.getRequestURI());
  22. if (annotation!=null){
  23. return true;
  24. }
  25. if (token==null){
  26. System.err.println("Token不能为空");
  27. return false;
  28. }
  29. String userIdFromToken = TokenUtils.getUserIdFromToken(token);
  30. String s = redisTemplate.opsForValue().get(userIdFromToken);
  31. String userIdFromToken1 = TokenUtils.getUserIdFromToken(s);
  32. System.err.println(userIdFromToken);
  33. System.err.println(userIdFromToken1);
  34. if (s!=null && userIdFromToken1.equals(userIdFromToken)){
  35. return true;
  36. }else {
  37. System.err.println("Token错误");
  38. return false;
  39. }
  40. }
  41. }