spring boot拦截器WebMvcConfigurerAdapter

参考: http://blog.51cto.com/12066352/2093750

利用拦截器功能,分别 - 拦截'前台'和'后台' 的session用户和session管理员操作.

代码: 首先创建前台拦截器类

public class BeforeInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 判断session是否存在
        HttpSession httpSession = request.getSession();
        Integer adminId = (Integer) httpSession.getAttribute("userid");
        if (adminId == null) {
            // => 如果为空跳转到登录界面
            response.sendRedirect("login");
            return false;
        } else {
            return true;
        }
    }
}

代码: 其次创建后台拦截器类

public class AfterInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 判断session是否存在
        HttpSession httpSession = request.getSession();
        Integer adminId = (Integer) httpSession.getAttribute("adminId");
        if (adminId == null) {
            // => 如果为空跳转到登录界面
            response.sendRedirect("loginAdmin");
            return false;
        } else {
            // 如果不为空则放行
            return true;
        }
    }
}

代码:最后创建拦截器配置类 -> 针对 '方法'上的拦截,拦截需要拦截的方法上的注解

@Configuration
public class WebConfigurer implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //添加拦截器及需要拦截的方法 => 后台拦截
        registry.addInterceptor(new AfterInterceptor())
                .addPathPatterns("/adminDestroy", "/passwordAdmin", "/editPass")
                .addPathPatterns("/commentAdmin", "/delComment")
                .addPathPatterns("/consultationAdmin", "/delConsultation", "/consultationAnswer")
                .addPathPatterns("/introductionAdmin", "/delIntroduction")
                .addPathPatterns("/newsAdmin", "/delNews")
                .addPathPatterns("/noteAdmin", "/addNote", "/delNote")
                .addPathPatterns("/ordersAdmin", "/ordersItemQuery", "/editOrdersStatus")
                .addPathPatterns("/refundAdmin", "/agreeRefund", "/refuseRefund", "/refundAnswer")
                .addPathPatterns("/statAdmin")
                .addPathPatterns("/suggestAdmin", "/delSuggest", "/suggestAnswer")
                .addPathPatterns("/userAdmin", "/delUserAndInfo");

        // 添加拦截器及需要拦截的方法 => 前台拦截
        registry.addInterceptor(new BeforeInterceptor())
                .addPathPatterns("/address", "/insertAddress", "/delAddr", "/editAddrs")
                .addPathPatterns("/insertInformation", "/information")
                .addPathPatterns("/collection", "/cancelCollect", "/addCollect")
                .addPathPatterns("/consultation", "/suggest", "/insertConsultation", "/insertSuggest", "/news")
                .addPathPatterns("/order", "/delOrdersOne", "/change", "/reCargo", "/cancel", "/orderinfo", "/commentlist", "/comment", "/commentListSubmit", "/refund", "/refundSubmit", "/deleteRefund")
                .addPathPatterns("/pay", "/success", "/walletlist")
                .addPathPatterns("/shopcart", "/delShopCartIntroduction", "/addShopCartToIntroduction", "/jiaNumber", "/jianNumber")
                .addPathPatterns("/password", "/updatePassword");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40820862/article/details/86603249