Spring Boot2.0阻拦器简单实现判断能否登录

作者 : 开心源码 本文共1432个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共169人阅读

在进行项目开发的时候使用springboot框架用到阻拦器时发现2.0以后原来的笼统类WebMvcConfigurerAdapter已经过时了,去官网查文档2.x版本要实现阻拦器功能改为需要继承WebMvcConfigurer接口。

实现阻拦器大致分为两步

一、创立我们自己的阻拦器类并实现 HandlerInterceptor 接口


//创立阻拦器BackInterceptor并实现接口HandlerInterceptor

public class BackInterceptorimplements HandlerInterceptor {

//重写preHandle方法

????@Override? ?

????public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler)? throws Exception {

????????//判断session里能否有user?

??????????? if (null == request.getSession().getAttribute(“user”)) {

????????????????????return false;

? ? ? ????? ·}

????????????return true;

????}

}?

二、重写WebMvcConfigurerAdapter中的addInterceptors方法把自己设置的阻拦器类增加进来就可


//创立一个实现WebMvcConfigurer接口的类

? public class MyWebMvcConfigurerAdapterimplements WebMvcConfigurer {

????????//获取阻拦器的Bean

????????@Bean

????????public HandlerInterceptorgetBackInterceptor() {

????????????????return new BackInterceptor();

????????}

????????/**

????????*重写addInterceptors方法

????????* addPathPatterns:需要阻拦的访问路径

????????* excludePathPatterns:不需要阻拦的路径, String数组类型可以写多个用”,”分割

????????*/

????????@Override

????????public void addInterceptors(InterceptorRegistry registry){

????????????????registry.addInterceptor(getBackInterceptor()).addPathPatterns(“/admin/**”).excludePathPatterns(“/toLogin”, “/admin/login”);

????????}

}?


阻拦器测试,阻拦了addPathPatterns(“/admin/**”)也就是admin下的所有资源

可以看到访问路径http://localhost:10010/admin后显示的是错误页面

下面试一下访问不需要阻拦的路径excludePathPatterns(“/toLogin”)

http://localhost:10010/toLogin

成功访问到登录页面

欢迎关注微信公众号:看到我请叫我滚去学习

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Spring Boot2.0阻拦器简单实现判断能否登录

发表回复