spring security
来源:互联网 发布:js遍历所有标签 编辑:程序博客网 时间:2024/06/06 09:26
原文
http://www.cnblogs.com/hzhuxin/archive/2011/12/14/2287363.html
http://blog.csdn.net/generalyy0/article/details/8459181
springSecurity的登录验证是由org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter这个过滤器来完成的,在该类的父类AbstractAuthenticationProcessingFilter中有一个AuthenticationManager接口属性,验证工作主要是通过这个AuthenticationManager接口的实例来完成的。在默认情况下,springSecurity框架会把org.springframework.security.authentication.ProviderManager类的实例注入到该属性,
AuthenticationManager接口的相关类图如下:
UsernamePasswordAuthenticationFilter的验证过程如下:
1. 首先过滤器会调用自身的attemptAuthentication方法,从request中取出authentication, authentication是在org.springframework.security.web.context.SecurityContextPersistenceFilter过滤器中通过捕获用户提交的登录表单中的内容生成的一个org.springframework.security.core.Authentication接口实例.
2. 拿到authentication对象后,过滤器会调用ProviderManager类的authenticate方法,并传入该对象
3.ProviderManager类的authenticate方法再调用自身的doAuthentication方法,在doAuthentication方法中会调用类中的List<AuthenticationProvider> providers集合中的各个AuthenticationProvider接口实现类中的authenticate(Authentication authentication)方法进行验证,由此可见,真正的验证逻辑是由各个各个AuthenticationProvider接口实现类来完成的,DaoAuthenticationProvider类是默认情况下注入的一个AuthenticationProvider接口实现类
4.AuthenticationProvider接口通过UserDetailsService来获取用户信息
以下为时序图:
- Spring Security
- Spring Security
- spring security
- spring security
- spring security
- spring security
- spring security
- spring security
- spring security
- spring security
- spring security
- Spring Security
- spring security
- spring-security
- Spring Security
- Spring Security
- spring security
- spring Security
- 处理 Vue 单页面应用 SEO 的另一种思路
- shell脚本编写规范(超实用)
- 关于高精度数的问题:求斐波那契数列在一个区间内有几个数。区间要求0-10^100内。
- 树链剖分求LCA
- 集合框架
- spring security
- centOS 7 安装redis
- mybatis的jar版本问题
- create user rm identified by rmrm;-- 创建新的用户 --grant 权限1、权限2...to 用户 给创建用户权限 --ex:grant create ses
- JDBC的基本概念理解以及简单实现
- Oracle数据库分页的三种方法
- 【其他】TortoiseSVN搭建服务器(未完待续)
- Java数据库开发
- Android为什么使用Binder作为IPC机制