我正在攻读Spring Core认证,我有一些与此文档中 Spring Security 图表查找的含义有关:
它解释了 Spring Security 项目的体系结构及其组件之间的交互,但究竟意味着什么?
它显示了身份验证管理器组件,阅读文档,我发现它处理来自框架其他部分的身份验证请求,所以我认为它提供的类似于接口与一些方法执行自动认证操作,并且该接口将由特定的认证提供实现(根据认证技术选择)
这意味着身份验证管理器会填充安全上下文。春天的*安全上下文**究竟是什么?是存储与 Principal 相关的信息的“地点”(例如,在Web应用程序上进行身份验证的用户)以及此主体的授权列表安全资源? (例如,已记录的用户以及此用户可以对安全资源执行哪些操作?)是正确还是我遗漏了某些内容?
然后有一个安全拦截器,我认为必须是一个代理类,使用类似之前的建议执行安全建议的AOP机制会超过某些特定关节点。关节点是对安全资源的操作(例如,在安全bean上执行方法)。
查看图片我认为代理从安全上下文获取此信息,其中包含主体(已登录用户)及其授权(可以执行此记录用户的操作),因此它可以创建之前的建议以检查此操作。是对的还是我错过了什么?
什么代表 AccessDecision Manager 组件?什么是选民显示在图片中?
TNX
答案 0 :(得分:1)
security-context包含有关当前用户的安全信息(名称,登录名,权限...)。它受当前线程和会话https://stackoverflow.com/a/6408377/280244
当用户登录安全上下文时,身份验证管理器会将( poulate )的安全信息放入其中。
安全拦截器(方法或Http请求)将在调用受保护/安全资源之前拦截调用。它从安全上下文获取有关当前用户的信息。允许调用的requies规则是从某些配置(xml,annotations,...)获得的。关于当前用户是否符合所需规则的决定是委派到访问决策管理器
访问决策管理器不会自行实施决策规则,而是使用(不同的)选民投票授予访问权限,拒绝访问权限(或弃权)。
@See:Spring Security Reference: Chapter 13 Authorization Architecture