这个Spring Security图是什么意思?

3
我正在为Spring Core认证学习,并对文档中的Spring Security图解的含义有一些疑问:
该图解释了Spring Security项目的架构以及其组件之间的交互,但具体是什么意思呢?
它展示了一个Authentication Manager组件,阅读文档后我发现它处理其他框架部分的身份验证请求,因此我认为它提供了类似于接口的东西,其中包含一些方法来执行身份验证操作,并且这个接口将由特定的身份验证提供者实现(根据所选的身份验证技术)。
那么Authentication Manager如何填充Security Context?在Spring中,Security Context到底是什么?它是一个“位置”,存储与主体相关的信息(例如Web应用程序上已经认证的用户)以及该主体在受保护资源上的授权列表(例如登录用户以及该用户可以对受保护资源执行哪些操作)吗?是否正确或者我漏掉了什么?
然后是一个Security Interceptor,我认为它必须是一个代理类,使用类似于“before advice”的AOP机制,在某些特定的连接点之前执行安全性建议。连接点是受保护资源上的操作(例如受保护bean上的方法执行)。
从图片中看来,我认为代理从Security Context获取此信息,其中包含主体(已登录用户)及其授权(此已登录用户可以执行哪些操作),因此它可以创建before advice来检查这些操作。是否正确或者我漏掉了什么?
AccessDecision Manager组件代表什么?图中的voter是什么?
谢谢。

1
你看过Spring Security的主要参考文档吗?它讨论了这些组件。 - chrylis -cautiouslyoptimistic-
1个回答

1
  • 安全上下文包含有关当前用户(名称、登录、权限等)的安全信息。它绑定到当前线程和会话中 https://dev59.com/Amw15IYBdhLWcg3wxukh#6408377

  • 认证管理器将在用户登录安全上下文时添加(populate)有关用户的安全信息。

  • 安全拦截器(方法或HTTP请求)将在调用受保护/安全资源之前拦截调用。它从安全上下文中获取有关当前用户的信息。允许调用的要求规则是从某些配置(XML、注释等)中获取的。关于当前用户是否符合所需规则的决策被委托访问决策管理器

  • 访问决策管理器不是自己实现决策规则,而是使用(不同的)投票者为访问授权、访问拒绝(或弃权)进行投票。

@参见:Spring Security参考手册:第13章授权架构


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接