登录校验-interceptor/拦截器

news2024/9/22 7:24:08

Interceptor

概念:拦截前端对后端的某些请求
使用步骤

  1. 自定义拦截器类,实现HandlerInterceptor接口,重写所有的方法(preHandle方法在controller执行之前执行【postHandle、afterCompletion】在controller执行后执行)
  2. 注册拦截器
    在这里插入图片描述
    在这里插入图片描述

详细步骤

在这里插入图片描述

过滤器Filter:会拦截所有的资源
拦截器Interceptor:只会拦截spring中的资源
在开发的时候,使用其中的一种就可以了

  1. public class InterceptorDemo implements HandlerInterceptor实现该接口
  2. 实现preHandle/postHandle/afterCompletion方法
  3. 在preHandle方法中添加

//和servlet过滤器的流程一致,在这里true表示放行,false表示拦截
String url=res.getRequestURI().toString();
        if(url.contains("login"))
        {
            System.out.print("跳转到登录页面");
            return true;
        }
        String jtw=res.getHeader("token");
        if(!StringUtils.hasLength(jtw))
        {
            Result error=Result.error("no_login");
            String nologin= JSONObject.toJSONString(error);
            rsp.getWriter().write(nologin);
            log.info("interceptor拦截1"+url);
            return false;

        }
        try
        {
            Jwt.parseJWT(jtw);
        }catch (Exception e)
        {
            e.printStackTrace();
            Result error=Result.error("no_login");
            String nologin= JSONObject.toJSONString(error);
            rsp.getWriter().write(nologin);
            log.info("interceptor拦截2"+url);
            return false;
        }
        return true;

4.创建配置类实现 WebMvcConfigurer

@Configuration//申明是配置文件
public class InterceptorDemoconfig implements WebMvcConfigurer {
    @Autowired
    private InterceptorDemo interceptorDemo;//注入拦截器对象
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(interceptorDemo).addPathPatterns("/**")//注册拦截器
;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于java,springboot的零食零售系统设计与实现

背景 本系统实现管理员:首页、个人中心、用户管理、零食分类管理、零食信息管理、订单评价管理、系统管理、订单管理,用户;首页、个人中心、订单评价管理、我的收藏管理、订单管理,前台首页;首页、零食信息、零食资讯…

Vue工程创建及应用

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…

Python Pandas之loc、iloc

df.loc 通过标签索引获取数据 df.iloc 通过位置索引获取数据

Airtest:Windows桌面应用自动化测试二【Airtest基于图像识别自动控制手机App流程】

Airtest基于图像识别自动控制手机App流程 一、Airtest基于图像识别自动控制手机App流程二、基于图像识别生成脚本有两种操作:三、Airtest基于Poco的UI组件自动化控制App流程四、Airtest实现手机群控操作 Airtest介绍与脚本入门 Airtest相关api操作 一、Airtest基于…

暑期学JavaScript【第三天】

事件流 很多时候,一个事件可能会被多个元素监听。那么这些元素应该按什么顺序响应呢?从父到子称为捕获,从子到父称为冒泡。 事件捕获 可选参数,true or fause,带true代表按捕获方式响应 obj.addEventListener(cli…

短视频seo源码部署打包分享---开源

功能概要: 1. 按关键词搜索账号排名 2. 按关键词布局查询视频排名 3. 按天计费功能开发 4. 达标天数及关键词数量统计 开发概要: 区别于其他开发者,同类产品多用第三方,如:站长之家,本系统代码开发使…

| 从头打造个人网站(超详细)

哈喽🤗,这篇博客从0开始教大家创建自己的网站,包含个人网站,商用网站等,并且提供模板类型,提供修改模块样本~ 看完本博客你将会收获: 一个想要的类型网站学习React解答过程中遇到的问题最终效果 那就开始吧👩‍💻👨‍💻 ********************************…

AutoSAR系列讲解(入门篇)4.9-BSW小结

首先,要恭喜各位,最为枯燥难懂的一章你已经看完了。也许现在你还是一头雾水,但是相信大部分人都差不多,不必着急,因为AutoSAR单纯看理论最终也就只能看到这个程度了。所以看不太懂的小伙伴在这里先给自己一个定位&…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 主体架构与接口

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

Python dict keys方法:获取字典中键的序列【将keys转为list】

描述 dict.keys()方法是Python的字典方法,它将字典中的所有键组成一个可迭代序列并返回。 使用示例 >>> list({Chinasoft:China, Microsoft:USA}.keys()) [Chinasoft, Microsoft] >>> test_dict {Chinasoft:China, Microsoft:USA, Sony:Japan,…

JetBrains goland、pycharm、webstorm、phpstorm 对比两文件内容是否一致

对比文件 JetBrains goland、pycharm、webstorm、phpstorm 对比两文件内容是否一致 第一种 打开文件,按住键盘上的CTRL键,然后鼠标右键,点击菜单中的”Compare with Clipboard”,左侧就可以粘贴文件内容对比 第二种 在编辑器窗口中…

MyBatis使用PageHelper插件实现分页查询

1.引入依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.1</version> </dependency>2.在mybatis-config.xml⽂件中配置插件 <plugins><plugin interce…

搭建Home Assistant智能家居系统 - 随时随地控制你的家庭设备「内网穿透」

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

用于保护虚拟机数据安全的VMware备份方案!

​什么是有效的VMware备份方案&#xff1f; ​由于操作风险、自然灾害、恶意软件攻击、停电等意外状况的影响&#xff0c;备份VMware虚拟机是很重要的&#xff0c;它可以有效防止出现数据丢失和业务中断的情况。 一般来说&#xff0c;有效的VMware备份方案通常应该具…

pikache靶场通关——SSRF攻击

文章目录 前言环境第一关、SSRF&#xff08;curl&#xff09;Step.1、http协议链接本地文件Step.2、file协议读取C盘下的配置文件Step.3、dict协议扫描内网其他主机的端口开放情况Step.4、使用burp扫描内网其他主机的端口开放情况Step.5、后端源码分析 第二关、SSRF(file_get_c…

09-C++学习笔记-文件操作

&#x1f4da; 输入输出流的概念 在C中&#xff0c;输入输出流是用于在程序和外部设备&#xff08;如键盘、显示器、文件等&#xff09;之间进行数据传输的机制。输入流用于从外部设备读取数据到程序中&#xff0c;输出流用于将程序中的数据输出到外部设备。 C中的输入输出流…

实现自定义exporter

1、实现自定义exporter 1.1 四种常用Metrics 1.1.1 Counter 连续增加不会减少的计数器&#xff0c;可以用于记录只增不减的类型&#xff0c;例如&#xff1a;网站访问人数&#xff0c;系统运行时间等。 对于 Counter 类型的指标&#xff0c;只包含一个increment()的方法&…

Eclipse中的实用工具之JUnit

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于JUnit的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 是什么 为什么要用 怎么用 是什么 JUnit…

奇舞周刊第497期:解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 解锁 PDF 文件&#xff1a;使用 JavaScript 和 Canvas 渲染 PDF 内容 最近研究了 Web 的 FileSystemAccess Api&#xff0c;它弥补了 Web 长期以来缺少的能力&#xff1a;操作用户…

《PyTorch深度学习实践》第九讲 多分类问题

b站刘二大人《PyTorch深度学习实践》课程第九讲多分类问题笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p9&vd_sourceb17f113d28933824d753a0915d5e3a90 二分类问题中计算出 P ( y 1 ) P(y1) P(y1)即可直接得到 P ( y 0 ) P(y0) P(y0)&#xff0…