




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Kerry Dong,Acegi Security安全控制框架介绍,目录,Acegi能干什么 Acegi体系结构 Acegi使用实例,Acegi能干什么,用惯了oa和tapd的安全控制,来点新鲜的 Acegi是Java社区一个比较出名的安全控制框架 能为企业级应用提供安全解决方案 成为Spring的子项目,又叫Spring Security 利用Spring的Ioc和AOP功能,提供声明式安全控制功能 提供的安全服务: 1. URL资源访问控制 2. 业务方法访问控制 3. 领域对象访问控制,Acegi能干什么,Acegi通过多个不同用途的Servlet过滤器对URL资源进行保护,在请求受保护
2、的URL资源前,Acegi的Servlet过滤器判断用户是否有权访问目标资源,授权者被开放访问,而未未被授权者将被阻挡在大门之外。 Acegi通过Spring AOP对容器中Bean的受控方法进行拦截,当用户的请求引发调用Bean的受控方法时,Acegi的方法拦截器开始工作,阻止未授权者的调用。 对领域对象的访问控制建立在对Bean方法保护的基础上,在最终开放目标Bean方法的执行前,Acegi将检查用户的ACL(Aeccess Control List:访问控制列表)是否包含正要进行操作的领域对象,只有领域对象被授权时,用户才可以使用Bean方法对领域对象进行处理。此外,Acegi还可以对B
3、ean方法返回的结果进行过滤,将一些不在当前用户访问权限范围内的领域对象剔除掉即传统的数据可视域范围的控制。一般来说,使用Acegi控制数据可视域并非理想的选择,相反通过传统的动态SQL的解决方案往往更加简单易行。,Acegi能干什么,Acegi支持的认证 (登录方式) 1. Basic : 服务器返回401(authentication required)状态,客户端弹出一个窗口,用于输入用户名和密码 用户名密码以及内容都是以非加密的方式传输 2. 摘要: 客户端返回用户名和密码的摘要信息(比如说MD5加密) 黑客还是可以利用digest值来访问网站。并且,它对内容并不加密 3. Form
4、: 高度可定制:可以根据自己的需要来实现认证逻辑。 服务器端保存客户端信息(比如session)。 客户端保存cookie,一般是username和一个cookie值(比如sessionId)的组合。 4. 证书 : 使用SSL协议和数字证书身份证明 5. 单点登录: 多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统 通过ticket表明身份,Acegi能干什么,Acegi支持的认证 (数据源) 1. 数据库 : 最常用的方式,结构灵活 2. LDAP : 从LDAP服务器中获取用户信息 3. JAAS : Java验证和授权API,提供了灵活和可伸缩的机制来保证客户端或服务
5、器端的Java程序,基于用户的访问控制,即根据谁在运行代码来进行授权 4. CAS : 根据Yale中心认证服务进行认证 5. X509 使用509数字证书中进行验证 6. Remember Me 从Cookie中获取用户信息 7. 匿名登录: 匿名访问 。,Acegi能干什么,传输协议 HTTP : HTTP Post发送的表单数据以明文传送,安全性比较差 HTTPS : SSL + HTTP 需要WEB服务器和浏览器两方支持 SSL在TCP/IP层和应用层之间,对传输数据进行加密 HTTPS带来了的响应性能损耗,并不是所有资源都需要加密 Acegi支持通过简单配置实现基于HTTP和HTTP
6、S的访问控制,目录,Acegi能干什么 Acegi体系结构 Acegi使用实例,Acegi体系结构,Acegi体系结构,AuthenticationManager 认证管理器,完成身份的认证 AccessDecisionManager 访问控制管理器,完成资源的访问授权 SecurityContext 存储认证以后身份和权限信息 在一次请求的多个调用之间共享 通过session在多次调用间共享 保存在SecurityContextHolder中,Acegi体系结构,Acegi体系结构,AuthenticationManager AuthenticationManager将身份认证的工作委托给多
7、个AuthenticationProvider。 不同的AuthenticationProvider执行诸如用户信息查询、用户身份判断、用户授权信息获取等工作(如数据库、CA中心、LDAP) 只要有一个AuthenticationProvider可以识别用户的身份,AuthenticationManager就通过用户身份认证,并将用户的授权信息放入到SecurityContext中,Acegi体系结构,AccessDecisionManager AccessDecisionManager采用民主决策机制判断用户是否有权访问目标程序资源,它包含了多个AccessDecisionVoter。 在访
8、问决策时每个AccessDecisionVoter都拥有投票权,AccessDecisionManager统计投票结果,并按照某种决策方式根据这些投票结果决定最终是否向用户开放受限资源的访问。,Acegi体系结构,UserDetail loadUserByUserName(String username) Authentication Object getPrincipal() 获取用户对象 被认证后将UserDetail中的权限信息加载进来 是Acegi进行安全访问控制的用户安全信息对象 存储在SecurityContext中,目录,Acegi能干什么 Acegi体系结构 Acegi使用实例
9、,Acegi使用实例,在请求的最开始进行拦截过滤 Web.xml channelFilterProxy org.acegisecurity.util.FilterToBeanProxy targetClass org.acegisecurity.securechannel.ChannelProcessingFilter channelFilterProxy /*,Acegi使用实例,2. 配置具体的拦截过程 spring配置 contextConfigLocationclasspath:applicationContext.xml org.springframework.web.context
10、.ContextLoaderListener ,Acegi使用实例,3. 配置具体安全拦截逻辑 CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter 有具体的多个逻辑过滤器组成 每一个都要定义对应的Bean处理,Acegi使用实例,4. 身份认证管理配置 用户名:密 码: ,Acegi使用实例,5. 身份认证管理配置 认证管理器 (基于内存的认证)John
11、=john,PRIV_COMMON,PRIV_1Tom=tom,PRIV_COMMON,PRIV_1,PRIV_2Peter=peter,disabled,PRIV_COMMON,PRIV_1 ,Acegi使用实例,6. 身份认证管理配置 密码加密 ,Acegi使用实例,7. 多个请求间共享SecurityContext 通过HttpSessionContextIntegrationFilter,将session中获取SecurityContext放入SecurityContextHolder中,请求结束时再放入session中。 CONVERT_URL_TO_UPPERCASE_BEFORE
12、_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter ,Acegi使用实例,8. 退出处理 CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter ,Acegi使用实例,9. Re
13、member Me a. 登陆时将用户名密码信息记录到cookie 5天内不再登陆 b.根据rememberme登录 ,Acegi使用实例,10. URL资源访问控制 CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=authenticationProcessingFilter,logoutFilter,filterSecurityInterceptor CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /secure/*=R
14、OLE_USER /secure/manage/*=ROLE_ADMIN /*=ROLE_ANONYMOUS ,Acegi使用实例,11. 异常访问控制 ,Acegi使用实例,12. 业务方法控制 *.*.*Dao=ROLE_ADMIN * =ROLE_USER 使用注释 Secured(“ROLE_ADMIN,ROLE_USER”),Acegi使用实例,其他功能: HTTPS Session并发 页面标签库 缓存 Captcha图片验证 X509 。,Acegi使用实例,Acegi3新版本的改变 支持Spring3.0. ,现在只能在JDK-5.0以上环境使用,不再支持JDK-1.4以及之前的版本。 大量重构代码结构,将核心库c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石油化工安装工程内部承包合同示范文本
- 二零二五版智能家居装修设计与施工合同
- 二零二五年度车辆抵押担保汽车保险合同
- 二零二五版电视剧剧本创作合同终止协议
- 2025版高端酒店场地租赁合同模板
- 2025版商业地产场地租赁分成合同示范文本
- 2025版智能仓储厂房租赁安全协议范本
- 2025版早餐店连锁经营合作协议
- 2025版仓储物流园区建设承包管理合同样本
- 二零二五年度工业厂房消防喷淋系统升级改造合同
- 钓鱼邮件安全对策
- 任现职以来年度考核情况一览表(表样)
- 关于微创手术治疗腋臭体会
- 种常见病标准导购话术
- 16G362 钢筋混凝土结构预埋件
- GB/T 31357-2014复合橡胶通用技术规范
- 新视野大学英语视听说教程第三册教案
- GB/T 29529-2013泵的噪声测量与评价方法
- GB/T 1591-2018低合金高强度结构钢
- ISO9001:2015中英文对照版
- 眼部化妆技巧课件
评论
0/150
提交评论