SpringBoot登录拦截配置(实测可用)

SpringMVC使用拦截器(Interceptor)实现用户登录校验 在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。 SpringMVC提供了Interceptor拦截器机制,用于请求的预处理和后处理。在SpringMVC中定义一个拦截器有两种方法:第一种是实现HandlerInterceptor接口,或者继承实现了Handler... 阅读详情

背景:写一个用户登录拦截,在网上找了一圈没找到好用的,于是自己试验了一下,总结出来,分享给大家。

1.自定义登录拦截器LoginInterceptor

public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    	// 这里是关键
        User loginUser = (User) request.getSession().getAttribute("user");
        if (loginUser == null) {
            // 未登录抛出异常,交给统一异常处理器处理
            throw new CustomException(ResultCode.USER_NOT_LOGIN);
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

2.在WebConfigurer中添加拦截器

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册TestInterceptor拦截器
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/**")
                // 排除登录注册等接口,注意这里的格式是 /**/xxx
                .excludePathPatterns("/**/login", "/**/register");  
    }
}

3.登录接口

 /**
     * 登录
     * @return 用户信息
     */
public User login(UserVO userVO. HttpServlet) {
    String username = userVO.getUsername();
    String password = userVO.getPassword();

    User user = userMapper.findByUsernameAndPassword(username, password);
    // 未找到用户
    if(user == null) {
        throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
    }
    // 设置session中的用户信息
    SessionUtils.setSessionAttribute("user", user);
    return user;
}

文中的代码细节不一一列举了,这里重点讨论的拦截器,感兴趣的朋友可以私聊我获取其他代码。

结果

未登录的情况下,请求普通接口提示未登录。

请求登录接口。

登录后再去请求普通接口,返回正常。

-END-

喜欢Java的小伙伴可以关注我的公众号:Java学习指南,每天分享一个Java学习小技巧。

SpringBoot实现登录拦截器 对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在SpringBoot开发的项目中,通过实现拦截器来实现用户登录拦截并验证。 1、SpringBoot实现登录拦截的原理 2、代码实现及示例 3、 效果验证 ... 阅读详情

相关推荐

SpringBoot使用拦截器(Interceptor)实现用户登录校验

在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。SpringBoot 提供了 Interceptor 拦截器机制,用于请求的预处理和后处理。在 SpringBoot 中定义一个拦截器有两种方法:第一种是实现 HandlerInterceptor 接口,或者继承实现了 HandlerInterceptor 接口的类(例如:HandlerInterceptorAdapter)。

pan_junbiao的博客 1万+

spring boot LoginInterceptor(登录拦截器)无法注入bean

spring boot LoginInterceptor(登录拦截器)无法注入bean的问题.源码结构图: LoginInterceptor代码:public class LoginInterceptor implements HandlerInterceptor { @Autowired private HS hs; @Override public boolean

mjlfto的博客 2万+

高动态范围结构光三维测量技术:从多曝光融合到深度学习的演进与应用

本文深入探讨了高动态范围结构光三维测量技术的演进与应用,从传统的多曝光融合技术到深度学习驱动的创新方案。通过工业案例展示了该技术在提升测量精度和效率方面的显著优势,特别是在处理高反光、复杂表面时的突破性表现。文章还提供了针对不同工业场景的技术选型指南,帮助工程师优化三维测量解决方案。

weixin_29063979的博客 293

通过Interceptor拦截器实现未登录请求拦截

拦截器可以拦截请求,通常用于验证登录,验证权限等。 下面用一个例子来了解一下如何用拦截器进行登录权限验证和拦截。 首先要创建一个LoginController 一个拦截器 LoginInterceptor 先要明确思路,首先要进入一个首页,可以选择进入登录页面和进入功能性页面 那么首先写出登录页面和功能性页面 @RequestMapping("/gologin") public String goLogin(){ return "Login"; } @Req

weixin_44976835的博客 2658

【PostgreSQL教程】PostgreSQL 高级篇之子查询

子查询也可称为内部查询、嵌套查询,指的是在 PostgreSQL 查询中的 WHERE 子句中嵌入查询语句。一个 SELECT 语句的查询结果能够作为另一个语句的输入值。子查询可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,并可使用运算符如 =、、>=、

No8g攻城狮的博客 1205

【1】Python交叉编译到OpenHarmony标准系统运行(arm32位)

本文介绍如何Python语言如何在OpenHarmony标准系统运行,包括5.0r和4.1r以及4.0r,和未来版本的OpenHarmony版本上。 Python语言在OpenHarmony上使用,需要将Python解释器CPython移植到OpenHarmony标准系统。通过交叉编译的方式。

weixin_58069108的博客 927

解决登入拦截器LoginInterceptor无法正常获取用户信息

解决无法获取登入用户信息

Jamtinx的博客 1075

实验十一 ——————二层交换基础

实验内容实验网络拓扑图如上所示SW1以及SW2都创建VLAN10和VLAN20,按照上图所示,将接口添加到特定的VLAN;测试PC之间的连通性,要求相同VLAN内的PC能够相互通信要求设置两台交换机名称以及进行特权模式的密码,并允许通过Telnet方式管理交换机实验目的了解二层交换机工作原理掌握交换机基本配置命令理解VLAN的概念,掌握VLAN的配置理解trunk的概念,掌握trunk的配置实验步...

Fly_鹏程万里 1489

SpringBoot学习笔记:登录拦截器

SpringBoot学习笔记:登录拦截器 原文地址 HandlerInterceptor是SpringWebMVC的拦截器,类似于Servlet开发中的过滤器Filter,用于对请求进行拦截和处理。可以应用的场景如下: (1) 权限检查:检测请求是否具有登录权限,如果没有直接返回到登录页面; (2) 性能监控:用请求处理前和请求处理后的时间差计算整个请求响应完成所有消耗的时间; (3) 日志记录:可以记录请求信息的日志,以便进行信息监控、信息统计等。 1. LoginInterceptor 实现一个简单的用

长沙火山 1118

Spring AI 实战:第二章、Spring AI提示词之玩转AI占卜的艺术

引言:程序员的神秘学探索引言:程序员的神秘学探索“下个迭代能按时发布吗?“这次晋升机会有多大?“我写的代码为什么总在半夜出bug?作为一名开发者是否也曾被这些略带玄学问题困扰?那让我们用Spring AI和提示词工程打造一个专属于程序员的"赛博占卜师",让大师来为你占卜一卦吧~一、提示词工程 - 与AI对话的艺术1.1 提示词工程是什么类比一下,AI就像一位刚从名校毕业的高材生它知识渊博但缺乏经验能解决复杂问题但需要明确指引有时会"过度脑补"(专业术语叫"幻觉")

liaokailin的专栏 1849

vue3 - 高德地图定位出错Get ipLocation failed.Geolocation permission denied.(info: “FAILED“ | status: 0)报错解决!

vue3,nuxt3,高德地图,定位,位置,报错,AMap.Geolocation,解决报当前定位失败,高德地图H5 定位失败报错,web网页网站,报错详细解决教程,Get ipLocation failed.Geolocation permission denied.,高德地图定位报错info: "FAILED",高德地图status: 0,已经是https了还是报错,确保了浏览器位置已经开了,手机定位也开了,没解决,H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation,移动端设

✅ 精选推荐文章 6771

SpringBoot拦截器实现登录拦截

SpringBoot拦截器可以做什么 可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等 SpringBoot拦截器实现登录拦截 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmln...

断橋殘雪的博客 1万+

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

springboot登录拦截器

springboot配置登录拦截器

FlymaAqi,芜湖,飞马阿起,passion!passion! 7174

OpenClaw人人养虾:发现与传输

客户端需要先"发现"Gateway 的地址和端口,才能建立连接。OpenClaw 支持多种发现(Discovery)和传输(Transport)机制。

王国平的博客 572

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SpringBoot中使用拦截器拦截跳转登录详解

创建一个自定义异常,用于在用户未登录时抛出。super();本文详细介绍了两种在SpringBoot中使用拦截器来控制用户登录并跳转到指定页面的方法。第一种方法是基于Session的检查,适用于大多数需要简单权限控制的场景。第二种方法是基于异常处理,它提供了更灵活的错误处理机制,适用于需要精细控制用户访问权限的复杂应用。两种方法各有优势,开发者可以根据实际需求选择适合的实现方式。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章SpringBoot中使用拦截器拦截跳转登录。

ning的博客 1782

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringBoot实现登录拦截器超详细(springboot拦截器excludePathPatterns方法不生效的坑)

SpringBoot实现登录拦截器 springboot拦截器excludePathPatterns方法不生效的坑与解决方法

Qgchun. 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot实现登录拦截器(实战版)

文章目录3.1、访问 localhost:8081/index 页面:3.2、正确输入用户名和密码登录3.3、再次访问 localhost:8081/index1.1、实现HandlerInterceptor接口1.2、实现WebMvcConfigurer接口,注册拦截器1.3、保持登录状态1、SpringBoot 实现登录拦截的原理2、代码实现及示例3、效果验证...

5624

Springboot未登录请求拦截器实现

Springboot未登录请求拦截器实现 之前用过struts2的同学了解,未登录请求拦截可以通过自定义Interceptor实现, 在springboot项目中也有对应的解决方案: 自定义Interceptor extends HandlerInterceptorAdapter,重写preHandle方法 自定义WebMvcConfig实现WebMvcConfigurer接口, 实现addIn...

Java猿人一枚的博客 5020

Springboot 拦截器配置(登录拦截)

Springboot 拦截器配置(登录拦截) 注意这里环境为springboot为2.1版本 1.编写拦截器实现类,实现接口 HandlerInterceptor, 重写里面需要的三个比较常用的方法,实现自己的业务逻辑代码 (就是自己拦截器拦截时做什么处理) package com.*.*.interceptor; import java.io.IOExcep...

weixin_30566063的博客 1449

SpringBoot拦截器的配置:强制用户登录是怎么做到的?

有时候为了拦截掉垃圾访问;又或者为了安全着想,有些路径必须通过认证之类的操作才能访问,这个时候一个拦截器是必不可少的。

Qizhi_Hu的博客 2122

SpringBoot 2.X配置登录拦截器

前言 在旧版中,一般继承 WebMvcConfigurerAdapter类,但由于2.0后,前者已经过时,在spring boot2.x中,WebMvcConfigurerAdapter被deprecated,虽然继承WebMvcConfigurerAdapter这个类虽然有此便利,但在Spring5.0里面已经deprecated了。 官方文档也说了,WebMvcConfigurer接口现在已经...

qq_36177977的博客 1786
上一篇: CentOS7安装maven私服仓库nexus3教程
下一篇: [已解决] vue element-ui表格中使用Popconfirm或者Popover弹窗,删除按钮不显示问题
程序员青戈
程序员青戈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 3万+粉丝 250原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员青戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值