网站大量收购独家精品文档,联系QQ:2885784924

Spring Security在支付宝的使用.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring Security在支付宝的使用

Spring Security在支付宝的使用Spring Security简介1.1 Spring Security核心概念Spring Security是一种为基于Spring的应用程序提供说明性安全保护的安全模型。前身是Acegi Security。它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权。在Spring Framework基础上,Spring Security充分利用了依赖注入和面向切面技术。Spring Security提供两种保护:一种是保护web应用程序;一种是保护方法的调用。在保护Web应用程序时,SpringSecurity使用Servlet拦截器来拦截Servlet请求,以实施身份认证和执行安全措施。Spring Security采取了一种独特的机制来声明Servlet过滤器,使你可以使用SpringDI注入它所依赖的其他对象。Spring Security还可以通过保护方法调用在一个较低层的级别上执行安全措施。在保护方法时,Spring Security使用Spring AOP来代理对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。Spring Security的核心组件是:安全拦截器。见图1。图1 Spring Securiy核心组件安全拦截器包括四部分:认证管理器;访问决策管理;运行身份管理器;调用后管理器。在Spring Security中,这些组件的实现见图2图2 核心组件实现安全拦截器拦截请求之后,会在访问资源之前,依次使用认证管理器,访问决策管理器,运行身份管理器来检查请求是否通过。在访问资源之后,还会使用调用后管理器检查返回的数据。1.2 Spring Security保护资源的流程如图2所示,AbstractSecurityInterceptor代表了安全拦截器,它包含了4个主要属性:1)AuthenticationManager(认证管理器);2)AccessDecisionManager(访问决策管理器);3)RunAsManager(运行身份管理器);4)AfterInvocationManager(调用后管理器)。此外,该类提供了安全拦截的模板方法。Spring Security保护资源的流程就在该类中实现。 1.在安全拦截器被加载时,会调用afterPropertiesSet方法。该方法中会确保一些属性不为空,并依次调用AccessDecisionManager(访问决策管理器);RunAsManager(运行身份管理器);AfterInvocationManager(调用后管理器)的support方法。来确认初始化配置是否正确。2.在资源被访问之前。会调用beforeInvocation方法。该方法中会依次调用AuthenticationManager(认证管理器);AccessDecisionManager(访问决策管理器);RunAsManager(运行身份管理器)相应的方法,来决定是否允许该请求。如果不允许该请求,则会抛出异常。3.在资源被访问之后。会调用afterInvocation方法。该方法会调用afterInvocationManager的decide方法,决定返回的数据是否允许被查看。4.AbstractSecurityInterceptor中有两个虚方法。getSecureObjectClass和obtainObjectDefinitionSource方法。这两个方法会被AbstractSecurityInterceptor的子类实现。1.2.1 安全拦截器拦截请求在不同的场景下,安全拦截器拦截请求的方式不一样。在保护Web应用程序时,安全拦截器是包装在filter中的。在保护方法调用时,安全拦截器使用Spring AOP来拦截请求。1.2.2 身份认证身份认证的功能由AuthenticationManager(认证管理器)来完成。它负责辨认你是谁。AuthenticationManager接口定义为:publicinterfaceAuthenticationManager {public Authentication authenticate(Authentication authentication)throws AuthenticationException;}其功能是对请求进行身份验证。其具体实现的类图如下:图3 认证管理器的类图访问决策管理身份认证只是Spring Security安全保护机制的第一步publicinterfaceAccessDecisionManager {publicvoid decide(Authentication authentication, Obje

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档