AuthenticationInterceptor.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.nju.edu.pay.web;
  2. import com.nju.edu.pay.util.jwt.JWTUtil;
  3. import com.nju.edu.pay.web.annotation.RootAllowed;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.method.HandlerMethod;
  6. import org.springframework.web.servlet.HandlerInterceptor;
  7. import org.springframework.web.servlet.ModelAndView;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.lang.reflect.Method;
  11. public class AuthenticationInterceptor implements HandlerInterceptor {
  12. @Autowired
  13. JWTUtil jwtUtil;
  14. @Override
  15. public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object object) throws Exception {
  16. HandlerMethod handlerMethod=(HandlerMethod)object;
  17. Method method=handlerMethod.getMethod();
  18. if (method.isAnnotationPresent(RootAllowed.class)) {
  19. RootAllowed passToken = method.getAnnotation(RootAllowed.class);
  20. if (passToken.required()) {
  21. String token=httpServletRequest.getHeader("Authorization");
  22. return jwtUtil.verifyToken(token);
  23. }
  24. }
  25. return true;
  26. }
  27. @Override
  28. public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
  29. }
  30. @Override
  31. public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
  32. }
  33. }