AcegiSecurity安全控制框架介绍.ppt

上传人:scccc 文档编号:12267520 上传时间:2021-12-02 格式:PPT 页数:32 大小:707.50KB
返回 下载 相关 举报
AcegiSecurity安全控制框架介绍.ppt_第1页
第1页 / 共32页
AcegiSecurity安全控制框架介绍.ppt_第2页
第2页 / 共32页
AcegiSecurity安全控制框架介绍.ppt_第3页
第3页 / 共32页
AcegiSecurity安全控制框架介绍.ppt_第4页
第4页 / 共32页
AcegiSecurity安全控制框架介绍.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《AcegiSecurity安全控制框架介绍.ppt》由会员分享,可在线阅读,更多相关《AcegiSecurity安全控制框架介绍.ppt(32页珍藏版)》请在三一文库上搜索。

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资源进行保护,在请求受保护的URL资源前

2、,Acegi的Servlet过滤器判断用户是否有权访问目标资源,授权者被开放访问,而未未被授权者将被阻挡在大门之外。Acegi通过Spring AOP对容器中Bean的受控方法进行拦截,当用户的请求引发调用Bean的受控方法时,Acegi的方法拦截器开始工作,阻止未授权者的调用。对领域对象的访问控制建立在对Bean方法保护的基础上,在最终开放目标Bean方法的执行前,Acegi将检查用户的ACL(Aeccess Control List:访问控制列表)是否包含正要进行操作的领域对象,只有领域对象被授权时,用户才可以使用Bean方法对领域对象进行处理。此外,Acegi还可以对Bean方法返回的结

3、果进行过滤,将一些不在当前用户访问权限范围内的领域对象剔除掉即传统的数据可视域范围的控制。一般来说,使用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,提供了灵活和可伸缩的机制来保证客户端或服务器端的Java程序,基于用户的访问控制,即根据谁在运

5、行代码来进行授权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和HTTPS的访问控制,目录,Acegi能干什么Acegi体系结构Acegi

6、使用实例,Acegi体系结构,Acegi体系结构,AuthenticationManager认证管理器,完成身份的认证AccessDecisionManager访问控制管理器,完成资源的访问授权SecurityContext存储认证以后身份和权限信息在一次请求的多个调用之间共享通过session在多次调用间共享保存在SecurityContextHolder中,Acegi体系结构,Acegi体系结构,AuthenticationManagerAuthenticationManager将身份认证的工作委托给多个AuthenticationProvider。不同的AuthenticationPro

7、vider执行诸如用户信息查询、用户身份判断、用户授权信息获取等工作(如数据库、CA中心、LDAP)只要有一个AuthenticationProvider可以识别用户的身份,AuthenticationManager就通过用户身份认证,并将用户的授权信息放入到SecurityContext中,Acegi体系结构,AccessDecisionManagerAccessDecisionManager采用民主决策机制判断用户是否有权访问目标程序资源,它包含了多个AccessDecisionVoter。在访问决策时每个AccessDecisionVoter都拥有投票权,AccessDecisionMa

8、nager统计投票结果,并按照某种决策方式根据这些投票结果决定最终是否向用户开放受限资源的访问。,Acegi体系结构,UserDetail loadUserByUserName(String username)Authentication Object getPrincipal() 获取用户对象被认证后将UserDetail中的权限信息加载进来是Acegi进行安全访问控制的用户安全信息对象存储在SecurityContext中,目录,Acegi能干什么Acegi体系结构Acegi使用实例,Acegi使用实例,在请求的最开始进行拦截过滤Web.xml channelFilterProxy org

9、.acegisecurity.util.FilterToBeanProxy targetClass org.acegisecurity.securechannel.ChannelProcessingFilter channelFilterProxy /*,Acegi使用实例,2. 配置具体的拦截过程 spring配置contextConfigLocationclasspath:applicationContext.xmlorg.springframework.web.context.ContextLoaderListener,Acegi使用实例,3. 配置具体安全拦截逻辑CONVERT_URL

10、_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter有具体的多个逻辑过滤器组成每一个都要定义对应的Bean处理,Acegi使用实例,4. 身份认证管理配置 用户名:密 码:,Acegi使用实例,5. 身份认证管理配置 认证管理器 (基于内存的认证)John=john,PRIV_COMMON,PRIV_1Tom=tom,PRIV_COMMON,PRIV_1,PRIV_2Peter

11、=peter,disabled,PRIV_COMMON,PRIV_1,Acegi使用实例,6. 身份认证管理配置 密码加密 ,Acegi使用实例,7. 多个请求间共享SecurityContext 通过HttpSessionContextIntegrationFilter,将session中获取SecurityContext放入SecurityContextHolder中,请求结束时再放入session中。CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrati

12、onFilter,authenticationProcessingFilter,logoutFilter,Acegi使用实例,8. 退出处理CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISONPATTERN_TYPE_APACHE_ANT/*=httpSessionContextIntegrationFilter,authenticationProcessingFilter,logoutFilter ,Acegi使用实例,9. Remember Mea. 登陆时将用户名密码信息记录到cookie 5天内不再登陆b.根据rememberme登录 ,Acegi使用实

13、例,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/*=ROLE_USER /secure/manage/*=ROLE_ADMIN /*=ROLE_ANONYMOUS ,Acegi使用实例,11

14、. 异常访问控制 ,Acegi使用实例,12. 业务方法控制 *.*.*Dao=ROLE_ADMIN * =ROLE_USER 使用注释Secured(“ROLE_ADMIN,ROLE_USER”),Acegi使用实例,其他功能:HTTPSSession并发页面标签库缓存Captcha图片验证X509。,Acegi使用实例,Acegi3新版本的改变支持Spring3.0. ,现在只能在JDK-5.0以上环境使用,不再支持JDK-1.4以及之前的版本。大量重构代码结构,将核心库core,命名空间config,web验证部分都严格的分成独立的模块,不再像以前一样把所有代码都混放放core中。 支持Expression,现在无论是命名空间,配置文件,taglib中都可以使用表达式来指定需要的配置了。 方便的配置标签库,Acegi使用实例, ,Acegi使用实例, ,Acegi使用实例,官方网站:,

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1