个人学习spring security的心得:要入门这个框架首先要大体了解它的认证过程,而这个认证过程就是使用spring security的各种Filter(过滤器)来完成。
大多数的spring security的学习文档都会有这样一张认证流程图:
当客户端一个请求来到的时候,它会被AbstractAuthenticationProcessingFilter拦截(这个Filter是在基于 web 的认证请求中使用的。 处理包含 认证信息的请求,如 认证信息可能是 form POST提交的、 SSO 信息或者其他用户提供的),然后它检验到你是一个认证请求,所以它会分发给处理认证请求的过滤器UsernamePasswordAuthenticationFilter来处理,如果认证成功,它会返回一个认证成功的用户实体类和这个用户实体类所拥有的权限信息的凭证。
再来看看在UsernamePasswordAuthenticationFilter这里是怎么处理这个请求的?
图1可以看到,它会交给一个叫做认证管理者AuthenticationManager来处理,其实这里就是认证中心,它拥有各种类和接口来处理这些认证请求,它会交给一个叫AuthenticationProvider的实现类来处理。
这时要结合图2来分析:UsernamePasswordAuthenticationFilter会请求参数创建一个叫UsernamePasswordAuthenticationToken的凭证传递给AuthenticationManager认证中心——>再到AuthenticationProvider的实现类(图2用的是DaoAuthenticationProvider)。这时Provider拿到这个凭证就会去应用的内存中去匹配,如果匹配正确就返回这个认证实体(用户)的详细信息和用户权限。(这里的图用的是去内存中匹配,因为我们实际中的信息都会存到数据库,道理是一样的,如果存在数据库,那么就去数据库中去匹配,因为去内存还是去数据库是可配置的,以后会有讲到)。
认证成功后,返回的认证实体和用户权限信息,会封装成一个AuthenticationToken凭证,而系统应用返回到客户端用户的session里面会包含着这个Token,客户端拿着这个凭证之后,就可以访问其它权限范围内的资源了。
一个简略的spring security认证过程就是这样了,其中的细节,在以后的章节中会慢慢的深入了解到。
相关推荐
Spring security认证授权例子,自动创建数据库,在SysUser类增加字段,即可动态增加数据库对应表sys_user字段(前提是要删除原表,启动应用时才会重建表)
主题: Spring Security —— 演讲者 张明星 1、Traditional Web App Security Dev 2、Spring Security 2.x Quick Start 3、Spring Security 2.x Overview 4、Dive Into Spring Security Authentication ...
1.本项目为SpringCloud Gateway的微服务框架,整合了SpringSecurity,微服务间使用Redis来获取登陆的用户信息。 2.由于Gat
springboot+ spring security实现登录认证
理解Spring Security的工作原理,Spring Security结构总览,认证流程和授权,中间涉及到哪些组件,这些组件分 别处理什么,如何自定义这些组件满足个性需求。 OAuth2.0认证的四种模式?它们的大体流程是什么? ...
springsecurity是一个功能强大且高度可定制的身份验证和访问控制框架。springsecurity是一个...最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式。
Spring Security 3.x 完整入门教程 源代码 MyEclipse工程,请大家自己加入lib。
Spring Security三份资料,实战Spring Security 3.x.pdf;Spring Security 3.pdf;Spring Security使用手册.pdf
spring security 简单入门 spring security 简单入门 spring security 简单入门
SpringSecurity学习总结源代码
SpringSecurity入门教程,完整可运行的实例
spring security spring security 中文文档
SpringSecurity框架的权限认证流程原理,请求到来时SpringSecurity如果调用层层过滤器来完成认证;
Spring boot+Spring Security Oauth2.0,Sprint cloud+Spring Security Oauth2集成。四种认证方式。附带有代码,和案例,案例,还有视频链接。我保证看完就回,如果视频链接失效,评论回复我,我单独再给你一份。
基于springboot+SpringSecurity的一款权限认证系统源码+数据库.zip基于springboot+SpringSecurity的一款权限认证系统源码+数据库.zip基于springboot+SpringSecurity的一款权限认证系统源码+数据库.zip基于springboot...
项目中使用到的技术包含SpringBoot、SpringSecurity&oauth2(安全资源和授权中心模式、包括登录接口自定义返回字段、自定义手机号+密码登录、自定义免密登录)、Queue队列、线程池、xss攻击配置、SpringCache、Mybatis...
这是spring security第一个项目
SpringSecurity入门到进阶到高级,是我们老师给我们讲课用的,我们都照着配就没有问题,可以跑通,
Spring Security in Action
spring security 入门demo 非常不错 主要是完整