Spring spring

Spring中文网站 > Spring Security > Spring Security如何进行用户认证 Spring Security如何拦截认证和鉴权
Spring Security如何进行用户认证 Spring Security如何拦截认证和鉴权
发布时间:2026/03/12 16:11:51

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:Spring Boot 4.0.2

我们在学习Java后端开发时,在进阶阶段会接触Spring Security安全框架,该框架能快速实现用户认证与权限控制,是大型项目的重要框架,也是目前大多数企业正在使用的安全框架。本文将为大家介绍Spring Security如何进行用户认证,Spring Security如何拦截认证和鉴权的相关内容。

一、Spring Security如何进行用户认证

我们在登录校园教务系统时,输入学号和密码,系统确认你是本校学生的过程,就是认证。Spring Security是“框架”,有了框架就不需要手动编写繁琐的校验,而是通过配置,就可以实现安全可靠的认证功能,下面我就为大家介绍一下Spring Security进行用户认证的逻辑。

1、添加依赖

在Spring Boot项目中,需要在pom.xml中添加Spring Security依赖,例如下图所示,添加依赖后,如果不写配置类,Spring Security默认会拦截除静态资源以外的大部分请求,默认要求用户先登录,才能访问受保护的接口,引入依赖后,我们再通过配置类来自定义哪些接口放行、哪些需要登录。

引入依赖
图1:引入依赖

2、配置用户信息来源

实际开发中,一般会自己实现UserDetailsService接口,重写loadUserByUsername方法,根据用户名从数据库查询学生信息,查出相关信息,封装成UserDetails返回给Spring Security,用于后续框架认证,下图为了简单演示,暂时写死了用户名密码。

封装用户信息
图2:封装用户信息

3、配置密码加密方式

我们还需要指定加密算法(如BCrypt)加密存储明文,可以直接注入PasswordEncoder Bean,使用BCryptPasswordEncoder作为加密算法,不需要自己写加解密逻辑。

加密算法
图3:加密算法

二、Spring Security如何拦截认证和鉴权

拦截认证和鉴权是Spring Security的核心功能,Spring Security的拦截认证主要依赖“过滤器”,鉴权可结合“过滤器”和“拦截器”实现。

拦截器过滤器示意图
图4:拦截器过滤器示意图

Spring Security的拦截和鉴权基于“过滤器链”实现,无需我们手动编写拦截逻辑,只需通过配置指定拦截规则和权限要求,上面已经为大家介绍了代码逻辑,下面我就实际为大家演示一下登录鉴权。

1、直接访问hello接口

访问hello接口,配置了无需鉴权,直接就可以通过浏览器访问。

无需鉴权接口
图5:无需鉴权接口

2、访问/api开头的接口

配置了/api开头的接口需要登录鉴权,在未登录的情况下,浏览器访问/api接口会跳转到登录界面,提示需要登录,达到了拦截的目的,未登录的用户无法直接访问资源。

跳转登录
图6:跳转登录

3、认证通过访问资源

此处用postman为大家演示需要登录的接口,选择认证方式并输入正确的账号密码后,可以顺利访问资源,输入错误(鉴权不通过),也会阻止访问。上文代码中账号密码没有经过复杂处理,仅做演示。

访问控制
图7:访问控制

三、总结

以上就是Spring Security如何进行用户认证,Spring Security如何拦截认证和鉴权的相关内容。Spring Security是一款企业流行的安全认证框架,本文为大家介绍了该框架进行用户认证的方式,并且实际为大家演示了拦截认证的流程,希望对你有所帮助。

读者也访问过这里:
180 1563 6924