Spring Security介绍

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:30   837   0
<p style="margin-left:10px;"><span style="color:#000000;">文章主要分三部分<br> 1、Spring Security的架构及核心组件:(1)认证;(2)权限拦截;(3)数据库管理;(4)权限缓存;(5)自定义决策;<br> 2、环境搭建与使用,使用当前热门的Spring Boot来搭建环境,结合项目中实际的例子来做几个Case;<br> 3、Spring Security的优缺点总结,结合第二部分中几个Case的实现来总结Spring Security的优点和缺点。</span></p>
<h2 id="1、spring-security介绍" style="margin-left:0px;"><strong><span style="color:#0378bb;">1、Spring Security介绍</span></strong></h2>
<p style="margin-left:10px;"><span style="color:#000000;"> 整体介绍,Spring Security为基于J2EE开发的企业应用软件提供了全面的安全服务,特别是使用Spring开发的企业软件项目,如果你熟悉Spring,尤其是Spring的依赖注入原理,这将帮助你更快掌握Spring Security,目前使用Spring Security有很多原因,通常因为在J2EE的Servlet规范和EJB规范中找不到典型应用场景的解决方案,提到这些规范,特别要指出的是它们不能在WAR或EAR级别进行移植,这样如果你需要更换服务器环境,就要在新的目标环境中进行大量的工作,对你的应用进行重新配置安全,使用Spring Security就解决了这些问题,也为你提供了很多很有用的可定制的安全特性。<br>  Spring Security包含三个主要的组件:<code>SecurityContext</code>、<code>AuthenticationManager</code>、<code>AccessDecisionManager</code>.</span></p>
<p><img alt="Spring Security主要组件图" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4dc3994f12ca6e999822d973d53f9fd7.png"></p>
<p>图1-1 Spring Security主要组件</p>
<h3 id="11-认证" style="margin-left:0px;"><strong><span style="color:#0378bb;">1.1 认证</span></strong></h3>
<p style="margin-left:10px;"><span style="color:#000000;"> Spring Security提供了很多过滤器,它们拦截Servlet请求,并将这些请求转交给认证处理过滤器和访问决策过滤器进行处理,并强制安全性认证用户身份和用户权限以达到保护WEB资源的目的,Spring Security安全机制包括两个主要的操作,<strong>认证</strong>和<strong>验证</strong>,验证也可以称为权限控制,这是Spring Security两个主要的方向,认证是为用户建立一个他所声明的主体的过程,这个主体一般是指用户设备或可以在系统中执行行动的其他系统,验证指用户能否在应用中执行某个操作,在到达授权判断之前身份的主体已经由身份认证过程建立了。下面列出几种常用认证模式,这里不对它们作详细介绍,需要详细了解的老铁们可以自行查查对应的资料。</span></p>
<ol style="margin-left:0px;"><li><code>Basic</code>:<code>HTTP1.0</code>提出,一种基于challenge/response的认证模式,针对特定的realm需要提供用户名和密码认证后才可访问,其中密码使用明文传输。缺点:①无状态导致每次通信都要带上认证信息,即使是已经认证过的资源;②传输安全性不足,认证信息用<code>Base64</code>编码,基本就是明文传输,很容易对报文截取并盗用认证信息。</li><li><code>Digest</code>:<code>HTTP1.1</code>提出,它主要是为了解决Basic模式安全问题,用于替代原来的Basic认证模式,Digest认证也是采用challenge/response认证模式,基本的认证流程比较类似。Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源。</li><li><code>X.509</code>:证书认证,<code>X.509</code>是一种非常通用的证书格式,证书包含版本号、序列号(唯一)、签名、颁发者、有效期、主体、主体公钥。</li><li><code>LDAP</code>:轻量级目录访问协议(Lightweight Directory Access Protocol)。</li><li><code>Form</code>:基于表单的认证模式。</li></ol>
<h3 id="12-权限拦截" style="margin-left:0px;"><strong><span style="color:#0378bb;">1.2 权限拦截</span></strong></h3>
<p><img alt="image-20201024122405276" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-7bc2e02b4cfc8c45447ebfd2b57c34d2.png"></p>
<p>图1-2 用户请求</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cceab9c2d73c1546b13d65a5192d7a78.png"></p>
<p>图1-3 过滤器</p>
<p style="margin-left:10px;"><span style="color:#000000;"> Spring Security提供了很多过滤器,其中<code>SecurityContextPersistenceFilter</code>、<code>UsernamePasswordAuthenticationFilter</code>、<code>FilterSecurityInterceptor</code>分别对应<code>SecurityContext</code>、<code>AuthenticationManager</code>、<code>AccessDecisionManager</code>的处理。</span></p>
<p><img alt="Spring Security过滤链流程图
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP