小伙伴们大家好,今天给大家分享一个简单的springboot版登录拦截器
首先我们需要在springboot的启动类中让它实现WebMvcConfigurer 这个接口
比如:
1 public class springApplication implements WebMvcConfigurer{ 2 3 }
然后在里面重写 addInterceptors方法
1 @Override 2 public void addInterceptors(InterceptorRegistry registry) { 3 4 }
然后在里面添加一个拦截器
1 @Override 2 public void addInterceptors(InterceptorRegistry registry) { 3 //添加拦截器并过滤掉登录的请求 4 String[] exAdmin = new String[] { "/admin/login", "/admin/doLogin" }; 5 registry.addInterceptor(getAdminInterceptor()).addPathPatterns("/admin/**").excludePathPatterns(exAdmin); 6 7 }
上面数组中为过滤掉的路径,意思就是只要你的请求是这个路径那么我就不进入拦截器里面,比如说在登录的时候就不需要进行拦截
这个拦截器的拦截规则为:/admin/** 意思是只要是admin为前缀的请求,都进行拦截。
1 public class AdminInterceptor implements HandlerInterceptor { 2 @Autowired 3 HttpSession session; 4 5 @Override 6 public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object o) throws Exception { 7 Admin admin = (Admin)session.getAttribute("Admin"); //获取登陆者的信息 8 if (admin != null){ // 如果当前人没有登录就不能过这个拦截器,如果已经登录就可以过 9 return true; 10 } 11 return false; 12 } 13 }
在拦截器中,我们需要让这个拦截器实现 HandlerInterceptor 接口
再重写里面的preHandle方法 具体的拦截规则可以在里面制定,本人只是简单的制定的如果登录就放行,没有登录就不放行。
朋友们有问题可以提问,没有问题关注一下可好,谢谢