1234567891011121314151617181920212223242526272829303132333435363738 |
- package com.sf.config;
- import com.sf.util.JwtUtils;
- import com.sf.util.UserHolder;
- import jakarta.servlet.http.HttpServletRequest;
- import jakarta.servlet.http.HttpServletResponse;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.web.servlet.HandlerInterceptor;
- // 拦截器 要实现HandlerInterceptor接口
- // 要作为spring容器的组件
- @Component
- public class TokenInterceptor implements HandlerInterceptor {
- @Autowired
- private JwtUtils jwtUtils;
- // controller执行之前
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- String token = request.getHeader("Authorization");
- if (token != null && !token.equals("null")) {
- Long uid = jwtUtils.parseToken(token, "front");
- System.out.println("用拦截器解析uid: " + uid);
- UserHolder.setUserId(uid);
- }
- return HandlerInterceptor.super.preHandle(request, response, handler);
- }
- // controller执行之后
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- System.out.println("controller执行完成");
- UserHolder.clearUserId();
- HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
- }
- }
|