关键组件关系
FilterSecurityInterceptor
--- authenticationManager --- UserDetailService
--- accessDecisionManager
--- securityMetaDataSourceService
启动阶段
1.1、FilterSecurityInterceptor装配
InvocationSecurityMetaDataSourceService、
UserDetailService、
AccessDecisionManager
1.2、InvocationSecurityMetaDataSourceService构建url-权限列表的映射map
读取权限列表,遍历权限,
获取每个权限对应的url列表。建立如下url和权限列表的对应关系表。
Map {
(url1:[权限1,权限2,权限3]),
(url2:[权限2,权限3,权限4]),
(url3:[权限5,权限6,权限7]),
}
运行阶段
2.1、AuthentationManager认证:
用户登录时,
接收UserName和Password,和缓存/数据库进行比对通过。
通过UserDetailService获得UserDetails(含权限列表)
2.2、AccessDecisionManager鉴权:
用户点击功能时,
使用功能url查1.2字典,获得对应的权限列表。
遍历用户的UserDetails,是否有上述权限中的一个。