【SpringBoot】在SpringBoot项目中使用拦截器进行登录态判断
拦截器(Interceptor)可以帮我们进行登录态判断,拦截为登录用户,下面以我的项目作为实例记录开发过程
一、在项目包新建一个文件Interceptor
二、建立拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private SessionInterceptor sessionInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
}
}
- 自定义对象sessionInterceptor
三、重写拦截方法
- 新建类:SessionInterceptor 继承 HandlerInterceptor
@Service
public class SessionInterceptor implements HandlerInterceptor {
@Autowired
private UserMapper userMapper;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.length != 0 )
for (Cookie cookie : cookies) {
if(cookie.getName().equals("token")){
String token = cookie.getValue();
User user = userMapper.findByToken(token);
if(user != null){
request.getSession().setAttribute("user",user);
}
break;
}
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
完工