| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package com.video.script.admin.config;
- import com.video.script.admin.common.LoginUser;
- import com.video.script.admin.common.UserContext;
- import com.video.script.admin.service.TokenService;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Component;
- import org.springframework.web.servlet.HandlerInterceptor;
- @Component
- public class AuthInterceptor implements HandlerInterceptor {
- private final TokenService tokenService;
- public AuthInterceptor(TokenService tokenService) {
- this.tokenService = tokenService;
- }
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- String uri = request.getRequestURI();
- if (uri.startsWith("/api/auth/login")) {
- return true;
- }
- String token = request.getHeader("Authorization");
- if (token == null || token.trim().isEmpty()) {
- response.setStatus(401);
- response.setContentType("application/json;charset=UTF-8");
- response.getWriter().write("{\"code\":401,\"message\":\"Unauthorized\",\"data\":null}");
- return false;
- }
- LoginUser loginUser = tokenService.parse(token.replace("Bearer ", ""));
- if (loginUser == null) {
- response.setStatus(401);
- response.setContentType("application/json;charset=UTF-8");
- response.getWriter().write("{\"code\":401,\"message\":\"Token invalid\",\"data\":null}");
- return false;
- }
- UserContext.set(loginUser);
- return true;
- }
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
- UserContext.clear();
- }
- }
|