【问题标题】:What means this Spring Security diagram?这个 Spring Security 图是什么意思?
【发布时间】:2015-03-23 08:40:00
【问题描述】:

我正在学习 Spring Core 认证,我有一些与此 Spring Security 图的含义相关的文档:

它解释了 Spring Security 项目的架构及其组件之间的交互,但究竟是什么意思?

它显示了一个 Authentication Manager 组件,阅读文档后我发现它处理来自框架其他部分的身份验证请求,所以我认为它提供了类似接口与一些方法来执行认证操作,并且这个接口将由特定的认证提供者来实现(根据认证技术选择)

身份验证管理器填充安全上下文意味着什么。 Spring 中的 *Security Context** 到底是什么?它是存储与 Principal 相关的信息(例如在 Web 应用程序上通过身份验证的用户)和该主体的 授权 列表的“地方”吗?有保障的资源? (例如登录的用户以及该用户可以对受保护的资源执行哪些操作?)是正确的还是我遗漏了什么?

然后有一个 Security Interceptor 我认为它必须是一个代理类,它使用类似于 before advice AOP 机制的东西,它在某些特定联合之前执行安全建议观点。联合点是安全资源上的操作(例如安全 bean 上的方法执行)。

看图片我认为代理从 Security Context 获取此信息,其中包含主体(登录用户)及其授权(此登录用户可以执行哪些操作),因此它可以创建之前的建议以检查此操作。是对的还是我错过了什么?

AccessDecision Manager 组件代表什么?图片中显示的选民是什么?

Tnx

【问题讨论】:

  • 你看过主要的 Spring Security 参考文档吗?它讨论了这些组件。

标签: java spring security spring-mvc spring-security


【解决方案1】:
  • 安全上下文包含有关当前用户的安全信息(名称、登录名、权限...)。它绑定到当前线程和会话https://stackoverflow.com/a/6408377/280244

  • 身份验证管理器将在用户登录到安全上下文时放入 (poulate) 用户的安全信息。

  • 安全拦截器(方法或 Http 请求)将在调用受保护/受保护的资源之前拦截调用。它从安全上下文中获取有关当前用户的信息。允许调用的要求规则是从某些配置(xml、注释、...)中获得的。当前用户是否符合所需规则的决定委派Access Decision Manger

  • Access Decision Manger 不会自行实施 desision 规则,而是使用(不同的)Voters 投票赞成访问被授予,访问被拒绝(或弃权)。

@见:Spring Security Reference: Chapter 13 Authorization Architecture

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2011-04-11
    • 2018-10-29
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多