SpringBoot中Inteceptor的使用方式

本文详细介绍了如何在SpringBoot项目中使用自定义拦截器AdminInterceptor实现用户登录状态的检查。通过实现HandlerInterceptor接口,该拦截器可在指定路径前验证用户是否已登录,未登录则重定向到登录页面。同时,通过配置InterceptConfig类,可以灵活设置拦截和放行的路径,确保只有已登录的管理员才能访问敏感资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多,直接干货

1.在springboot工程基础上创建AdminInterceptor实现HandlerInterceptor
//用户登录就放行
public class AdminInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,     Object handler) throws Exception {
        Admin admin = (Admin) request.getSession().getAttribute(Constant.LOGIN_ADMIN);
        if (null==admin){
            response.sendRedirect(request.getContextPath()+"/admin/go/login");
            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.在config包下定义InterceptConfig类实现WebMvcConfigurer
//拦截器的配置类
@Configuration
public class InterceptConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //要拦截的路径
        String[] addInterceptorPaths = {
            "/**"
        };
        
        //要放行的路径
        String[] exceptInterceptorPaths = {
            "/bootstrap/**",
            "/test/**",
            "/images/**",
            "/admin/go/login",
            "/admin/login",
            "/admin/go/error",
        };
        registry.addInterceptor(new     AdminInterceptor()).addPathPatterns(addInterceptorPaths).excludePathPatterns(exc    eptInterceptorPaths);
    }
}

码云代码示例,有彩蛋哦…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Double@加贝

非常感谢家人们的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值