当前位置: 首页 > news >正文

Springboot使用登录拦截器LoginInteceptor来做登录认证

创建拦截器LoginInteceptor类

interceptors/LoginInteceptor.java

package org.example.interceptors;import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.example.utils.JwtUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;import java.util.Map;@Component  // 注册为bean
public class LoginInteceptor implements HandlerInterceptor {// 拦截器逻辑@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 获取请求头中的tokenString token = request.getHeader("Authorization");// 验证tokentry {Map<String, Object> claims = JwtUtil.parseToken(token); // 解析tokenreturn true;    // 放行} catch (Exception e) {// http响应码为401response.setStatus(401);return false;   // 拦截}}
}

注册拦截器

config/WebConfig.java

package org.example.config;import org.example.interceptors.LoginInteceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration   // 注册为bean
public class WebConfig implements WebMvcConfigurer {@Autowiredprivate LoginInteceptor loginInterceptor;// 放行登录接口和注册接口@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).excludePathPatterns("/user/login", "/user/register");}
}

使用

controller/ArticleController.java

package org.example.controller;import org.example.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/article")
public class ArticleController {@RequestMapping("/list")public Result<String> list() {return Result.success("获取文章列表成功");}
}

相关文章:

  • Python类的力量:第一篇:数据组织革命——用类替代“临时数据结构”
  • 6.3 数据分析与决策支持:数据洞察生成与决策辅助系统
  • EPSG的作用
  • 【LaTex】3.8流程图绘制
  • 水利三维可视化平台怎么做?快速上手的3步指南
  • AI日报 - 2025年04月30日
  • 【C++游戏引擎开发】第29篇:物理引擎(Bullet)—刚体动力学系统
  • C++:Lambda表达式
  • MS2111多点低压差分(M-LVDS)线路驱动器和接收器
  • __proto__与prototype
  • NFS-网络文件系统
  • 域名与DNS理解
  • 基于Springboot + vue实现的列书单读书平台
  • OVP UVP与UVLO对比
  • 【办公类-89-03】20250429AI写的研讨记录,清除格式,统一格式,名字替换。部分加粗,添加页眉
  • Leetcode 3528. Unit Conversion I
  • MySQL 索引与事务详解
  • 在线文章系统自动化测试报告
  • 工业声纹采集设备的市场需求趋势简析
  • Qwen3 开源!深度对比 DeepSeek,一文选对模型
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 屠呦呦当选美国国家科学院外籍院士
  • 马上评丨准入壁垒越少,市场活力越足
  • 美的集团一季度净利增长38%,库卡中国机器人接单增超35%
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记
  • 中国空间站首批在轨繁育果蝇即将返回地球,有望获得多项科学成果