AcegiSecurity安全控制框架介绍_第1页
AcegiSecurity安全控制框架介绍_第2页
AcegiSecurity安全控制框架介绍_第3页
AcegiSecurity安全控制框架介绍_第4页
AcegiSecurity安全控制框架介绍_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、kerry dongacegi security安全控制框架介绍安全控制框架介绍目录目录 acegi能干什么能干什么 acegi体系结构体系结构 acegi使用实例使用实例acegi能干什么能干什么用惯了用惯了oaoa和和tapdtapd的安全控制,来点新鲜的的安全控制,来点新鲜的acegi是是java社区一个比较出名的安全控制框架社区一个比较出名的安全控制框架能为企业级应用提供安全解决方案能为企业级应用提供安全解决方案成为成为spring的子项目,又叫的子项目,又叫spring security利用利用spring的的ioc和和aop功能,提供声明式安全控制功能,提供声明式安全控制功能功能提

2、供的安全服务:提供的安全服务: 1. url资源访问控制资源访问控制 2. 业务方法访问控制业务方法访问控制 3. 领域对象访问控制领域对象访问控制acegi能干什么能干什么acegi通过多个不同用途的servlet过滤器过滤器对url资源进行保护,在请求受保护的url资源前,acegi的servlet过滤器判断用户是否有权访问目标资源,授权者被开放访问,而未未被授权者将被阻挡在大门之外。acegi通过spring aop对容器对容器中bean的受控方法进行拦截,当用户的请求引发调用bean的受控方法时,acegi的方法拦截器开始工作,阻止未授权者的调用。对领域对象的访问控制建立在对bean方

3、法保护的基础上方法保护的基础上,在最终开放目标bean方法的执行前,acegi将检查用户的acl(aeccess control list:访问控制列表)是否包含正要进行操作的领域对象,只有领域对象被授权时,用户才可以使用bean方法对领域对象进行处理。此外,acegi还可以对bean方法返回的结果进行过滤,将一些不在当前用户访问权限范围内的领域对象剔除掉即传统的数据可视域范围的控制。一般来说,使用acegi控制数据可视域并非理想的选择,相反通过传统的动态sql的解决方案往往更加简单易行。acegi能干什么能干什么acegi支持的认证支持的认证 (登录方式)(登录方式)1. basic 1.

4、basic :服务器返回401(authentication required)状态,客户端弹出一个窗口,用于输入用户名和密码 用户名密码以及内容都是以非加密的方式传输2. 2. 摘要:摘要:客户端返回用户名和密码的摘要信息(比如说md5加密)黑客还是可以利用digest值来访问网站。并且,它对内容并不加密3. form 3. form :高度可定制:可以根据自己的需要来实现认证逻辑。服务器端保存客户端信息(比如session)。客户端保存cookie,一般是username和一个cookie值(比如sessionid)的组合。4. 4. 证书证书 :使用ssl协议和数字证书身份证明5. 5.

5、 单点登录:单点登录:多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统通过ticket表明身份acegi能干什么能干什么acegi支持的认证支持的认证 (数据源数据源)1. 1. 数据库数据库 : 最常用的方式,结构灵活2. ldap :2. ldap : 从ldap服务器中获取用户信息3. jaas 3. jaas : java验证和授权api,提供了灵活和可伸缩的机制来保证客户端或服务器端的java程序,基于用户的访问控制,即根据谁在运行代码来进行授权4. cas :4. cas : 根据yale中心认证服务进行认证5. x5095. x509 使用509数字证书中进行验

6、证6. remember me6. remember me 从cookie中获取用户信息7. 7. 匿名登录:匿名登录: 匿名访问。 acegi能干什么能干什么传输协议传输协议http http : http post发送的表单数据以明文传送,安全性比较差https https : ssl + http 需要web服务器和浏览器两方支持 ssl在tcp/ip层和应用层之间,对传输数据进行加密 https带来了的响应性能损耗,并不是所有资源都需要加密 acegi支持通过简单配置实现基于http和https的访问控制目录目录 acegi能干什么能干什么 acegi体系结构体系结构 acegi使用实

7、例使用实例acegi体系结构体系结构acegi体系结构体系结构authenticationmanager认证管理器,完成身份的认证accessdecisionmanager访问控制管理器,完成资源的访问授权securitycontext存储认证以后身份和权限信息在一次请求的多个调用之间共享通过session在多次调用间共享保存在securitycontextholder中acegi体系结构体系结构acegi体系结构体系结构authenticationmanager1.authenticationmanager将身份认证的工作委托给多个authenticationprovider。2.不同的au

8、thenticationprovider执行诸如用户信息查询、用户身份判断、用户授权信息获取等工作(如数据库、ca中心、ldap)3.只要有一个authenticationprovider可以识别用户的身份,authenticationmanager就通过用户身份认证,并将用户的授权信息放入到securitycontext中acegi体系结构体系结构accessdecisionmanager1.accessdecisionmanager采用民主决策机制判断用户是否有权访问目标程序资源,它包含了多个accessdecisionvoter。2.在访问决策时每个accessdecisionvoter

9、都拥有投票权,accessdecisionmanager统计投票结果,并按照某种决策方式根据这些投票结果决定最终是否向用户开放受限资源的访问。acegi体系结构体系结构userdetail loaduserbyusername(string username)authentication object getprincipal() 获取用户对象被认证后将userdetail中的权限信息加载进来是acegi进行安全访问控制的用户安全信息对象存储在securitycontext中目录目录 acegi能干什么能干什么 acegi体系结构体系结构 acegi使用实例使用实例acegi使用实例使用实例1

10、. 在请求的最开始进行拦截过滤web.xml channelfilterproxy org.acegisecurity.util.filtertobeanproxy targetclass org.acegisecurity.securechannel.channelprocessingfilter channelfilterproxy /*acegi使用实例使用实例2. 配置具体的拦截过程 spring配置contextconfiglocationclasspath:applicationcontext.xmlorg.springframework.web.context.contextlo

11、aderlistener acegi使用实例使用实例3. 配置具体安全拦截逻辑convert_url_to_uppercase_before_comparisonpattern_type_apache_ant/*=httpsessioncontextintegrationfilter,authenticationprocessingfilter,logoutfilter有具体的多个逻辑过滤器组成每一个都要定义对应的bean处理 acegi使用实例使用实例4. 身份认证管理配置 用户名:密 码: acegi使用实例使用实例5. 身份认证管理配置 认证管理器 (基于内存的认证)john=john,

12、priv_common,priv_1tom=tom,priv_common,priv_1,priv_2peter=peter,disabled,priv_common,priv_1acegi使用实例使用实例6. 身份认证管理配置 密码加密 acegi使用实例使用实例7. 多个请求间共享securitycontext 通过httpsessioncontextintegrationfilter,将session中获取securitycontext放入securitycontextholder中,请求结束时再放入session中。convert_url_to_uppercase_before_com

13、parisonpattern_type_apache_ant/*=httpsessioncontextintegrationfilter,authenticationprocessingfilter,logoutfilteracegi使用实例使用实例8. 退出处理convert_url_to_uppercase_before_comparisonpattern_type_apache_ant/*=httpsessioncontextintegrationfilter,authenticationprocessingfilter,logoutfilter acegi使用实例使用实例9. reme

14、mber mea. 登陆时将用户名密码信息记录到cookie 5天内不再登陆b.根据rememberme登录 bean id=“authticationmananger” . acegi使用实例使用实例10. url资源访问控制 convert_url_to_uppercase_before_comparisonpattern_type_apache_ant/*=authenticationprocessingfilter,logoutfilter,filtersecurityinterceptor convert_url_to_uppercase_before_comparison patt

15、ern_type_apache_ant /secure/*=role_user /secure/manage/*=role_admin /*=role_anonymous acegi使用实例使用实例11. 异常访问控制 acegi使用实例使用实例12. 业务方法控制 *.*.*dao=role_admin * =role_user 使用注释secured(“role_admin,role_user”)acegi使用实例使用实例其他功能:httpssession并发页面标签库缓存captcha图片验证x509。acegi使用实例使用实例acegi3新版本的改变新版本的改变1.支持spring3.0. ,现在只能在jdk-5.0以上环境使用,不再支持jdk-1.4以及之前的版本。2.大量重构代码结构,将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论