登录拦截器

1.myInterceptor类

package com.jack.all.common;

import com.jack.all.entity.TUser;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 拦截器
 */
public class myInterceptor implements HandlerInterceptor {
    /**
     * 在请求处理之前进行调用(Controller方法调用之前)
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String path = request.getServletPath();//获取请求路径
        if (path.equals("/login")){
            return true;
        }else {
            //验证session是否存在
            TUser user = (TUser) request.getSession().getAttribute("login_user");
            if (user ==null){
                response.sendRedirect("/toLogin");
                return false;
            }
        }


        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 {

    }
}

2.注册拦截器类

package com.jack.all.common;

import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 注册拦截器
 */
@Configuration
public class WebMvcConfigure implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+ "/static/");
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册拦截器
        InterceptorRegistration registration=registry.addInterceptor(new myInterceptor());
        registration.addPathPatterns("/**");//拦截全部请求
        registration.excludePathPatterns(
                "/toLogin",
                "/toIndex",
                "/**/*.js",
                "/**/*.css",
                "/**/*.html",
                "/**/*.woff2",
                "/**/*.woff",
                "/**/*.ttf",
                "/static/**"
        );
    }
}

 

posted @ 2021-12-06 21:33  java璀璨小菜鸟  阅读(228)  评论(0)    收藏  举报