找回密码
 立即注册
查看: 35|回复: 0

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之拦截器Interceptor

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 3 天前 | 显示全部楼层 |阅读模式
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之拦截器Interceptor
游客,如果您要查看本帖隐藏内容请回复

讲解完了拦截器的基本操作之后,接下来我们需要完成最后一步操作:通过拦截器来完成案例当中的登录校验功能。
登录校验的业务逻辑以及操作步骤我们前面已经分析过了,和登录校验Filter过滤器当中的逻辑是完全一致的。现在我们只需要把这个技术方案由原来的过滤器换成拦截器interceptor就可以了。


1). TokenInterceptor
com.zidiu.interceptor 包下创建 TokenInterceptor
  1. @Slf4j
  2. @Component
  3. public class TokenInterceptor implements HandlerInterceptor {
  4.     @Override
  5.     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  6.         //1. 获取请求url。
  7.         String url = request.getRequestURL().toString();
  8.         //2. 判断请求url中是否包含login,如果包含,说明是登录操作,放行。
  9.         if(url.contains("login")){ //登录请求
  10.             log.info("登录请求 , 直接放行");
  11.             return true;
  12.         }
  13.         //3. 获取请求头中的令牌(token)。
  14.         String jwt = request.getHeader("token");
  15.         //4. 判断令牌是否存在,如果不存在,返回错误结果(未登录)。
  16.         if(!StringUtils.hasLength(jwt)){ //jwt为空
  17.             log.info("获取到jwt令牌为空, 返回错误结果");
  18.             response.setStatus(HttpStatus.SC_UNAUTHORIZED);
  19.             return false;
  20.         }
  21.         //5. 解析token,如果解析失败,返回错误结果(未登录)。
  22.         try {
  23.             JwtUtils.parseJWT(jwt);
  24.         } catch (Exception e) {
  25.             e.printStackTrace();
  26.             log.info("解析令牌失败, 返回错误结果");
  27.             response.setStatus(HttpStatus.SC_UNAUTHORIZED);
  28.             return false;
  29.         }
  30.         //6. 放行。
  31.         log.info("令牌合法, 放行");
  32.         return true;
  33.     }
  34. }
复制代码
2). 配置拦截器



  1. @Configuration  
  2. public class WebConfig implements WebMvcConfigurer {
  3.     //拦截器对象
  4.     @Autowired
  5.     private TokenInterceptor tokenInterceptor;
  6.     @Override
  7.     public void addInterceptors(InterceptorRegistry registry) {
  8.        //注册自定义拦截器对象
  9.         registry.addInterceptor(tokenInterceptor).addPathPatterns("/**");
  10.     }
  11. }
复制代码
1.png
demo.zip (115.84 KB, 下载次数: 0, 售价: 50 金币)

SpringBoot3+Vue3开发综合实战项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战




网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 06:29

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表