收藏 分享(赏)

spring_security教程.ppt

上传人:cw6mk8 文档编号:8543643 上传时间:2019-07-02 格式:PPT 页数:31 大小:1.48MB
下载 相关 举报
spring_security教程.ppt_第1页
第1页 / 共31页
spring_security教程.ppt_第2页
第2页 / 共31页
spring_security教程.ppt_第3页
第3页 / 共31页
spring_security教程.ppt_第4页
第4页 / 共31页
spring_security教程.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、翁玉鹏,Acegi Security Introduction,Acegi Security Introduction,Acegi Security 配置,Acegi Security 原理,Acegi Security 概述,Acegi Security 实例,Acegi Security概述,将系统的安全逻辑从业务中分离出来 提供很多认证授权策略 基于URL的WEB资源访问控制 业务方法调用访问控制 领域对象访问控制 Access Control List(ACL) 单点登录(Central Authentication Service) 缓存、信道安全(Channel Security)

2、管理等功能,为基于J2EE企业应用提供了全面安全服务,Acegi Security概述,2003年初Spring本身作为一个sourceforge的项目出现。 2003年年底acegi开始,当时叫“spring的acegi安全系统”。 2006年5月 acegi 1.0.0最终版本发布。 2007年年底成为spring组合项目,更名“Spring Security”。 2009年7月Spring Security 3.0已经发布,Acegi发展历史,Acegi Security概述,安全包括认证授权两个主要操作。 “认证”是为用户建立一个他所声明的主体。 主体一般是指用户,设备或可以在你系统中

3、执行行动的其他系统。 “授权”指的一个用户能否在你的应用中执行某个操作。 在到达授权判断之前,身份的主体已经由身份验证过程建立了。这些概念是通用的,不是Spring Security特有的。,安全通用原理,Acegi Security概述,软件供应商采用Spring Acegi,是因为它拥有丰富灵活的验证模型,列举几个认证技术: HTTP BASIC authentication headers (一个基于IEFT RFC的标准) LDAP (一个非常常见的跨平台认证需要做法,特别是在大环境) JA-SIG Central Authentication Service (也被称为CAS,这是一

4、 个流行的开源单点登录系统) Java Authentication and Authorization Service (JAAS) Form-based authentication (提供简单用户接口的需求) 。Spring Security是一个开放的平台,可以编写自己的验证机制。,Acegi 认证简述,Acegi Security概述,Spring Acegi在授权方面主要有三个领域授权web请求 授权被调用方法 授权访问单个对象的实例 为了了解它们的区别,对照考虑在Servlet规范web模式安全,EJB容器管理安全,和文件系统安全方面的授权方式。 Spring Acegi在所有这

5、些重要领域都提供了完备的能力。,Acegi 授权简述,Acegi Security Introduction,Acegi Security 配置,Acegi Security 概述,Acegi Security 原理,Acegi Security 实例,Acegi Security原理,乘飞机的安全问题,乘飞机前需要通过安检,乘客必须提供身份证以验证其身份。在通过安检进入候机室后,国航、海航、南航等不同航空公司的飞机陆续到达,但你只能登上机票上对应航班的飞机。在登机后,只能坐在机票对应的座位上你不能抢占他人的座位,你不能在座位上刻字留念、你不能要求空姐打开机窗 乘飞机的过程体现安全控制的流程:

6、 安检-身份认证 登机-资源访问控制 按号就座领域对象安全控制,Acegi Security原理,Acegi 体系结构,Acegi通过两个组件对象完成安全问题的处理: AuthenticationManager(认证管理器) AccessDecisionManager(访问控制管理器或者叫授权管理器),Acegi Security原理,Acegi 体系结构,在Acegi框架中,SecurityContextHolder处于非常核心的位置,它是存放认证管理器用户安全信息SecurityContext的“容器”, SecurityContext保存着用户安全访问控制所需的信息,直接被访问决策管理器

7、使用。HttpSessionContextIntegrationFilter通过在SecurityContextHolder和HttpSession中摆渡SecurityContext,使多个请求线程可以共享同一个SecurityContext。,Acegi Security原理,Acegi 实现以filter为中心,Acegi Security原理,各种主要filter介绍,Acegi Security原理,用户认证过程,Acegi支持多种方式的用户认证:如典型的基于数据库的认证、基于LDAP的认证等。先抛开细节,看一下Acegi对受限资源进行访问控制的典型过程: 1你点击一个链接访问一个网

8、页; 2浏览器发送一个请求到服务器,服务器判断出你正在访问一个受保护的资源; 3如果此时你并未通过身份认证,服务器发回一个响应提示你进行认证这个响应可能是一个HTTP响应代码,抑或重定向到一个指定页面; 4根据系统使用认证机制的不同,浏览器或者重定向到一个登录页面中,或者由浏览器通过一些其它的方式获取你的身份信息(如通过BASIC认证对话框、一个Cookie); 5浏览器再次将用户身份信息发送到服务器上(可能是一个用户登录表单的HTTP POST信息、也可能是包含认证信息的HTTP报文头); 6服务器判断用户认证信息是否有效,如果无效,一般情况下,浏览器会要求你继续尝试,这意味着返回第3步。如

9、果有效,则到达下一步; 7服务器重新响应第2步所提交的原始请求,并判断该请求所访问的程序资源是否在你的权限范围内,如果你有权访问,请求将得到正确的执行并返回结果。否则,你将收到一个HTTP 403错误,这意味着你被禁止访问。,Acegi Security原理,对象访问控制过程,Acegi称受保护的应用资源为“安全对象”,这包括URL资源和业务类方法。spring AOP中有前置advice(处理、拦截器、通知)、后置advice 、异常advice和环绕advice 。Acegi使用环绕advice对安全对象进行保护。 Acegi通AbstractSecurityInterceptor为安全对

10、象访问提供一致的工作模型,它按照以下流程进行工作: 1 从SecurityContext中取出已经认证过的Authentication(包括权限信息); 2 通过反射机制,根据目标安全对象和“配置属性”得到访问目标安全对象所需的权限; 3 AccessDecisionManager根据Authentication的授权信息和目标安全对象所需权限做出是否有权访问的判断。如果无权访问,Acegi将抛出AccessDeniedException异常,否则到下一步; 4 访问安全对象并获取结果(返回值或HTTP响应); 5 AbstractSecurityInterceptor可以在结果返回前进行处理

11、:更改结果或抛出异常。,Acegi Security Introduction,Spring Security 比较,Acegi Security 原理,Acegi Security 概述,Acegi Security 配置,Acegi Security 实例,Acegi Security配置,1.第一步并确保jar文件放到正确的位置(/WEB-INF/lib/) acegi-security-1.0.1.jar aopalliance-1.0.jar spring-2.0.2.jar 等相关jar包,一、环境基本配置,Acegi Security配置,2.在web.xml文件里配置一个Fil

12、terToBeanProxysecurityFilterorg.acegisecurity.util.FilterToBeanProxytargetBeanfilterChainProxysecurityFilter/*,一、环境基本配置,Acegi Security配置,3.applicationContext-security.xml文件的配置CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT /*=httpSessionContextIntegrationFilter,userPreferencesFilte

13、r,authenticationProcessingFilter ,一、环境基本配置,Acegi Security配置,1.根据数据库验证身份,二、登录验证,Acegi Security配置,2.Acegi 配置,二、登录验证,Acegi Security配置,2.Acegi 配置,二、登录验证,Acegi Security配置,1.Acegi 配置例一,三、方法保护,Acegi Security配置,2.Acegi 配置例二,三、方法保护,Acegi Security配置,1.ACL(Access Control List)理解 ACL用来做细粒度权限控制所用的一种权限模型。具体到每一条数据

14、的权限。保障Domain Object安全。ACL最简单的描述两个业务员每个人只能查看操作自己签的合同,而不能看到对方的合同信息。 最典型的ACL实现操作系统(window, unix)的文件访问控制系统,精确定义了某个用户或角色对某个特定文件的读、写、执行等权限。,四、Domain Object安全(ACL),Acegi Security配置,2.ACL配置示例,四、Domain Object安全(ACL),Acegi Security配置,2.ACL配置示例,四、Domain Object安全(ACL),Acegi Security配置,3.示例解释ACL_READ指的是这个Voter对哪

15、些SecurityConfig起作用。可以把ACL_READ配置在想要拦截的Method上。比方说要拦截readOrder这个方法,以实现ACL控制,可以这样配置orderManager.readOrder=ACL_READ processDomainObjectClass指出哪些DomainObject是要进行ACL校验的。 aclManager主要负责在权限列表根据用户和DomainObject取得acl列表。 requirePermission指出要进行这个操作必须具备的acl权限,比方说read操作就必须有ADMINISTRATION或READ两个权限。,四、Domain Object安全(ACL),Acegi Security Introduction,Acegi Security 原理,Acegi Security 概述,Acegi Security 实例,Acegi Security 配置,这里以securitydemo项目为例,详细介绍安全权限的具体配置。,Acegi Security实例,天津博和利科技有限公司,电话: 13622151022 邮箱: 姓名:翁玉鹏,谢谢大家 !,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报