InterceptorConfig.java
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.xxxx.xxxx.common.util.LocalCache;
import com.xxxxx.xxxx.entity.SysUser;
import com.navigation.common.core.exception.UnauthorizedException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@Component
@Slf4j
public class InterceptorConfig implements HandlerInterceptor {
@Value("${spring.profiles.active}")
private String active;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// log.info("---------------------开始进入请求地址拦截----------------------------");
log.info("通用拦截器, {} {}", request.getMethod(), request.getRequestURL());
// HttpSession session = request.getSession();
if (active.equals("dev")){
SysUser user = SysUser.builder().userName("sysadmin").mobile("188899990000").build();
LocalCache.setToken(user.getUserName(), user);
return true;
} else if (StrUtil.isNotBlank(request.getHeader("token")) && ObjUtil.isNotNull(LocalCache.getToken(request.getHeader("token")))) {
return true;
} else{
throw new UnauthorizedException("请先登录");
}
}
// @Override
// public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle...");
// }
//
// @Override
// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion...");
// }
}
WebMvcConfig.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private InterceptorConfig interceptorConfig;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(interceptorConfig)
.addPathPatterns("/**")
.excludePathPatterns("/sysUser/login")
.excludePathPatterns("/asyncServer/**")
.excludePathPatterns("/parkingSpace/find")
.excludePathPatterns("/*.html", "/*.txt", "/swagger*", "/webjars/**", "/favicon*", "/error")
.excludePathPatterns("/test/**"); // test;
}
}