springSecurity工作流程学习
来源:互联网 发布:淘宝策划做什么工作 编辑:程序博客网 时间:2024/03/28 23:22
springSecurity执行流程
整个程序执行的过程如下:
1、容器启动时
通过MyInvocationSecurityMetadataSource # loadResourceDefine 加载系统资源与权限列表resourceMap(一个Map结构,资源[url]为key,权限[auth]为value )
2、WEB服务器启动,加载security内置的过滤器链,
HttpSessionContextIntegrationFilter
LogoutFilter
AuthenticationProcessingFilter
DefaultLoginPageGeneratingFilter
BasicProcessingFilter
SecurityContextHolderAwareRequestFilter
RememberMeProcessingFilter
AnonymousProcessingFilter
ExceptionTranslationFilter
SessionFixationProtectionFilter
FilterSecurityInterception
自定义过滤器拦截请求 MyFilterSecurityInterceptor ,并设置在FilterSecurityInterception之前拦截。
给自定义过滤器,注入参数(MyInvocationSecurityMetadataSource,MyAccessDecisionManager,MyUserDetailService)
3、用户登陆
通过 AuthenticationManager 对用户输入的用户名和密码,然后根据用户定义的密码算法和盐值等进行计算并和数据库比对。
4、如果验证成功
通过MyUserDetailsService # loadUserByUsername
生成UserDetails供Spring Security使用。
5、当用户点击某个功能(URL)时。
通过MyAccessDecisionManager # decide
整个程序执行的过程如下:
1、容器启动时
通过MyInvocationSecurityMetadataSource # loadResourceDefine 加载系统资源与权限列表resourceMap(一个Map结构,资源[url]为key,权限[auth]为value )
2、WEB服务器启动,加载security内置的过滤器链,
HttpSessionContextIntegrationFilter
LogoutFilter
AuthenticationProcessingFilter
DefaultLoginPageGeneratingFilter
BasicProcessingFilter
SecurityContextHolderAwareRequestFilter
RememberMeProcessingFilter
AnonymousProcessingFilter
ExceptionTranslationFilter
SessionFixationProtectionFilter
FilterSecurityInterception
自定义过滤器拦截请求 MyFilterSecurityInterceptor ,并设置在FilterSecurityInterception之前拦截。
给自定义过滤器,注入参数(MyInvocationSecurityMetadataSource,MyAccessDecisionManager,MyUserDetailService)
3、用户登陆
通过 AuthenticationManager 对用户输入的用户名和密码,然后根据用户定义的密码算法和盐值等进行计算并和数据库比对。
4、如果验证成功
通过MyUserDetailsService # loadUserByUsername
生成UserDetails供Spring Security使用。
5、当用户点击某个功能(URL)时。
通过MyAccessDecisionManager # decide
根据URl取得 系统资源与权限列表 resourceMap 中的权限集合。与登录用户的权限集合进行循环对比,如果存在相同权限,代表用户具有访问该资源的权利。
阅读全文
0 0
- springSecurity工作流程学习
- SpringSecurity Filter处理流程
- Spring+SpringSecurity 学习总结
- springsecurity学习(一)
- SpringSecurity学习笔记一
- SpringSecurity学习(一)
- Vold工作流程分析学习
- Vold工作流程分析学习
- Vold工作流程分析学习
- Vold工作流程分析学习
- Vold工作流程分析学习
- Vold工作流程分析学习
- Vold工作流程分析学习
- (学习笔记)SpringMVC工作流程
- 【Spring】SpringSecurity的过滤器执行流程
- SpringSecurity
- SpringSecurity
- SpringSecurity
- 银行家算法
- Develop Leap Motion in ROS Kinetic: Hello World
- 内存管理
- SVN 项目文件加载失败
- ARP协议格式和实例分析
- springSecurity工作流程学习
- RTMP协议相关
- 记一次Waiting for table metadata lock
- mos文档索引
- “敏捷落地”方面的企业内训举行,感悟颇多!
- 软件开发项目云端All-In-One体验
- redis学习计划(二)redis常用数据类型 String
- linux下安装jdk
- javascript的setInterval()与setTimeout()的用法和区别以及如何改变元素坐标位置