返回介绍

14.1 Spring Security 介绍

发布于 2025-04-26 13:53:53 字数 1417 浏览 0 评论 0 收藏

在 Web 应用开发中,安全是非常重要的。因为安全属于应用的非功能性需求,大部分企业会把更多资源投入应用开发中,所以应用安全很容易被忽略。安全应该在应用开发的初期就考虑进来,如果在应用开发的后期才考虑安全问题,就可能陷入两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来。

市场上开源的安全框架很多,比如 Apache Shiro 安全框架、Spring Security 安全框架等。虽然 Spring Security 安全框架比 Apache Shiro 安全框架“重”,但是如果我们用心去了解 Spring Security 安全框架,就会发现其实 Spring Security 安全框架是非常优秀的。本书选择在 Spring Boot 中集成 Spring Security 安全框架。

Spring Security 安全框架除了包含基本的认证和授权功能外,还提供了加密解密、统一登录等一系列支持。Spring Security 安全框架简单的实现原理如图 14-1 所示。

图 14-1 Spring Security 简单原理

在图 14-1 中,Accessor 是资源的访问者,在访问过程中,需要经过一系列拦截器 Interceptor 的拦截,比如 FilterSecurityInterceptor、MethodSecurityInterceptor、AspectJSecurityInterceptor 等。这些拦截器是统一的抽象类 AbstractSecurityInterceptor 的具体实现。“控制机构”AccessDecisionManager 决定谁可以访问资源,而“身份认证机构”AuthenticationManager 就是定义那个“谁”,解决的是访问者身份认证问题,只有确定注册类,才可以给予授权访问。“控制机构”AccessDecisionManager 和“身份认证机构”AuthenticationManager 负责制订规则,AbstractSecurityInterceptor 负责执行。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。