安全无处不在, 掌握其原理,深入了解其调用链。
在我们的日常开发中,我们都会接触到系统的 用户体系 , 系统的用户系统是一个产品的基石,在做用户体系的时候,我们往往会考虑使用一套安全框架,目前比较主流的安全框架有 spring-security 和shiro,个人更喜欢spring全家桶系列。
spring-security 的核心主要是围绕着 认证(Authentication)——身份验证 和 授权(Authorization)—— 访问控制 , 这两部分来进行。
架构与实现
一旦你熟悉了设置和运行一些基于命名空间配置的应用程序,你可能希望开发更多的框架去理解命名空间门面后面实际上是如何运转。类似大部分软件, Spring Security有一定的中央接口,以及通常在整个框架中使用的概念抽象类。在参考指南的这一部分,我们将看看其中的一些,看看它们如何协同工作去支持Spring Security中的身份验证和访问控制
技术概述
核心组件
Spring Security主要由以下几部分组成的:
- SecurityContextHolder, 提供几种访问 SecurityContext的方式。
- SecurityContext, 保存Authentication信息和请求对应的安全信息。
- Authentication, 展示Spring Security特定的主体。
- GrantedAuthority, 反应,在应用程序范围你,赋予主体的权限。
- UserDetails,通过你的应用DAO,提供必要的信息,构建Authentication对象。</