java - 这个 Spring Security 图意味着什么?

标签 java spring security spring-mvc spring-security

我正在学习 Spring Core 认证,我对文档中发现的这个 Spring Security 图的含义有一些疑问:

enter image description here

它解释了Spring Security项目的架构及其组件之间的交互,但到底意味着什么?

它显示了一个身份验证管理器组件,阅读文档后我发现它处理来自框架其他部分的身份验证请求,因此我认为它提供了类似接口(interface)的东西,其中包含一些方法来执行身份验证操作,并且该接口(interface)将由特定的身份验证提供者实现(根据身份验证技术选择)

身份验证管理器填充安全上下文意味着什么。 Spring 中的*安全上下文**到底是什么?它是存储与主体相关的信息(例如在Web应用程序上进行身份验证的用户)以及该主体对 protected 资源的授权列表的“位置”吗? (例如登录的用户以及该用户可以对 protected 资源执行哪些操作?)这是正确的还是我遗漏了某些内容?

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

查看图片,我认为代理从包含主体(登录用户)及其授权(该登录用户可以执行哪些操作)的安全上下文中获取此信息,以便它可以创建之前的建议来检查此操作。这是正确的还是我错过了什么?

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

Tnx

最佳答案

  • 安全上下文包含有关当前用户的安全信息(名称、登录名、权限...)。它绑定(bind)到当前线程和 session https://stackoverflow.com/a/6408377/280244

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

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

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

@参见:Spring Security Reference: Chapter 13 Authorization Architecture

关于java - 这个 Spring Security 图意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28124626/

相关文章:

apache - 内容安全策略 : allowing all external images?

java - 是否可以更改 Firebase 的短信验证消息?

java - MPAndroidChart,如何将图表上的值从 float 格式化为整数,接口(interface)已弃用

Java Spring JDBC Oracle 存储过程返回 null

java.lang.ClassNotFoundException : org. springframework.core.ResolvableTypeProvider 问题

asp.net - 是否可以在 ApplicationServices DB 中对电子邮件地址进行加密?

java - Spark 流 : Writing number of rows read from a Kafka topic

java - 与 Java 的数据绑定(bind)

java - 如何使用 springmvc 作为 Controller 渲染对 jsf 页面的 ajax 响应

.net - RNGCryptoServiceProvider 使用哪种伪随机数生成算法?