欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年Acegi好的笔记 .pdf

    • 资源ID:32098932       资源大小:171.13KB        全文页数:7页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年Acegi好的笔记 .pdf

    Spring 框架和Acegi 安全框架介绍1、spring 框架Spring 框架是由Open Source 开发的一个优秀的多层J2EE 系统框架,它为企业级应用提供了一个非常轻量级的解决方案,大大地降低了应用开发的难度与复杂度,提高了开发的速度。Spring 框架的核心是IoC 和 AOP。IoC 是一种设计模式,即IoC 模式。 IoC 模式进一步降低了类之间的耦合度,并且改变了传统的对象的创建方法,实现了一种配置式的对象管理方式, Spring 框架中由IoC 容器负责配置性的对象的管理。IoC 模式极大的提高了系统开发与维护的灵活性。AOP 是一种编程模式,它是从系统的横切面关注问题。传统的面向对象编程OOP 主要从系统的垂直切面对问题进行关注,对于系统的横切面关注很少,或者说很难关注,这样当考虑到系统的安全性、日志、事务以及其他企业级服务时,OOP 就无能为力了,只能在所有相关类中加入类似的系统服务级的代码。AOP 为解决系统级服务问题提供了一种很好的方法。 AOP 将系统服务分解成方面看待,并为类提供一种声明式系统服务方式。Java 类不需要知道日志服务的存在也不需要考虑相关的代码。所以,用AOP 编写的应用程序是松耦合的,代码的复用性就提高了。2、Acegi 安全框架借助于 Spring 框架,开发者能够快速构建结构良好的WEB 应用,但现有的Spring 框架本身没有提供安全相关的解决方案。同样来自于Open Source 社区的 Acegi 安全框架为实现基于 Spring 框架的 WEB 应用的安全控制提供了一个很好的解决方案。Acegi 本身就是利用 Spring 提供的 IoC 和 AOP 机制实现的一个安全框架,它将安全性服务作为J2EE 平台中的系统级服务, 以 AOP Aspect 形式发布。 所以借助于Acegi 安全框架, 开发者能够在Spring使能应用中采用声明式方式实现安全控制。Acegi 安全框架主要由安全管理对象、拦截器以及安全控制管理组件组成。安全管理对象是系统可以进行安全控制的实体,Acegi 框架主要支持方法和URL 请求两类安全管理对象;拦截器是Acegi 中的重要部件, 用来实现安全控制请求的拦截,针对不同的安全管理对象的安全控制请求使用不同的拦截器进行拦截;安全控制管理部件是实际实现各种安全控制的组件,对被拦截器拦截的请求进行安全管理与控制,主要组件包括实现用户身份认证的AuthenticationManager 、 实 现 用 户 授权 的AccessDecisionManager 以 及 实 现 角 色转 换 的RunAsManager。安全管理对象、拦截器以及安全控制管理组件三者关系如图1所示。Acegi 安全框架在基于Spring 框架的系统中的应用1、分析系统安全性需求首先,需要明确进行安全控制的对象,可为业务方法和URL 资源。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 其次,需要进一步明确,系统身份认证资料和资源授权信息的数据持久化形式。2、Acegi 安全系统数据库设计在 Acegi 框架中支持多种安全信息的持久化方式,可以在配置文件中配置或存放在关系数据库。 由于在实际应用中,需求是经常发生变化的。所以, 在配置文件中配置是满足不了实际应用需求的。 然而,Acegi 本身对权限表的设计非常简单,users 表username,password,enabled 和 authorities 表username,authority ,这样简单的设计肯定无法适用复杂的权限需求。为了解决权限管理的复杂性,在这里引入了role(角色)的概念,使得用户和权限分离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵活地支持安全策略。同时,为了更好地配合Acegi 安全框架,还引入resource(资源)的概念,资源可分为URL 和 FUNCTION (方法)两种,一个权限可以对应多个资源。具体的数据库设计见图2。图 1 安全管理对象,拦截器和安全管理组件交互图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 3、认证管理器,授权管理器的配置实现系统的安全控制,首先需要对系统的安全管理器和授权管理器进行配置,系统进行认证和授权需要获取安全信息,Acegi 本身提供了对认证信息的获取机制,在实现认证与授权过程中,系统将主动根据配制信息和相应的信息解释安全信息的读取。图3给出了一个将用户安全信息存储在数据库中的认证管理器的配置示意图。对应于图示的XML 配置文件的代码如下:/* 配置数据库datasource 和 Acegi 的 jdbcDao */ bean id= ”dataSource ” class= ” org.springframework.jdbc.datasource.DriverManagerDataSource”property name= ”driverClassName ”value$jdbc.driverClassName /value/property property name= ”url ”value$jdbc.url/value/property 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 图3 认证管理器配制示意图 property name= ”username”value$jdbc.username /value /property property name= ”password”value$jdbc.password /value /property /bean bean id= ”jdbcDaoImpl ” class= ”org.acegisecurity. roviders. dao.jdbc.JdbcDaoImpl”property name= ”dataSource ”ref bean= ”dataSource ”/property /bean/*配置用户信息的加密算法*/ bean id= ”passwordEncoder”Class= ” org.acegisecurity.providers.encoding.Md5passwordEncoder”/*配置缓存有效时间*/ bean id=”userCache” class= ”org.acegiSecurity. providers. dao.cache.EhCacheBasedUserCache”/这里对缓存有效时间进行设置 /bean/*配置 daoAuthenticationProvider*/ bean id= ”daoAuthenticationProvider” 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - class= ” org.acegisecurity.providers.dao.DaoAuthenticationProvider”property name= ”authenticationDao”ref local=”JdbcDaoImpl”/property property name= ”passwordEncoder”ref local=” passwordEncoder ”/property property name= ”userCache”ref local=” userCache ”/property /bean/*配置认证管理器*/ bean id= ”authenticationManager” class= ”org.acegisecurity. providers.ProviderManager”property name= ”providers ”listref local=”daoAuthenticationProvider”/list /property /bean授权管理器的配置方法与认证管理器的配置基本类似,这里不再讨论。4、安全请求拦截器的配置以上配置完成后, 就需要配置安全拦截器。不同的安全管理对象需要使用不同的安全拦截器。对于方法级的安全认证需要使用的拦截器为MethodSecurityInterceptor , 而应用于 URL资源的安全拦截器为FilterSecurityInterceptor 。其中, MethodSecurityInterceptor拦截器是借助于 Spring Aop 实现的,而FilterSecurityInterceptor拦截器是借助于Servlet Filter 实现的。本文以 URL 资源请求的安全拦截器为例说明配置情况。由于 URL 资源请求安全拦截是借助于过滤器进行的。因此首先要配置Acegi Servlet 过滤器。过滤器类似于AOP Around 装备,实现在web 资源调用前后进行的一些操作6种过滤器,他们依次构成Servlet 过滤器链,依次处理客户请求。需要注意的是过滤器配置的顺序是不能交换的,当不需要使用某个过滤器时,可直接将其删除和注释。过滤器在web.xml中配置形式为filter filter-name Acegi HTTP Request Security Filter /filter-name filter-class org.acegisecurity.util.FilterToBeanProxy /filter-class init-param 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - param-nametargetClass/param-nameparam-valueOrg.acegisecurity.intercept.web.SecurityEnforcementFilter /param-value/init-param /filter filter-mapping filter-name Acigi HTTP Request Security Filter/filter-name url-pattern/*/url-pattern /filter-mapping 在 spring applicationContext.xml文件中的配置形式为bean id= ”securityEnforcementFilter” class= ”property name= ”filterSecurityInterceptor”ref bean=”filterInvocationInteceptor”/propertyproperty name= ”authenticationEntryPoint”ref bean= ”authenticationProcessingFilterEntryPoint”/property以上代码是SecurityEnforcementFilter 的配置,该过滤器对用户是否有权访问web 资源作出最后的决定。其它的过滤器的配置类同。配置完过滤器后,需要对拦截器FilterSecurityInterceptor进行配置,bean id= ”filterInvocationInterceptor”Class= ”property name= ”authenuserCacheticationManager”1property name= ”accessDecisionManager ”property name= ”objectDefinitionSource”ref local=filterObjectDefinitionSource/propertybean id=filterObjectDefinitionSource class=org.xiaohongli.acegi.db.DBFilterObjectDefinitionSourceconstructor-arg refbean=jdbcTemplate/ /constructor-arg/beanobjectDefinitionSource属性定义了那些受保护的URL 资源,其中引用了一个本地对象名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - filterObjectDefinitionSource。filterObjectDefinitionSource类从数据库中读取需要保护的URL安全信息,它扩展了PathBasedFilterInvocationDefinition Map类。同 样 , 实 现 了 另 外 一个methodObjectDefinitionSource类 从 数 据 库 中 读 取需 要 保 护 的FUNCTION 资源,它扩展了MethodDefinitionMap类。限于篇幅,在这里就不列出具体实现的源代码。bean id=methodObjectDefinitionSource class=org.xiaohongli.acegi.db.DBMethodObjectDefinitionSourceconstructor-arg refbean=jdbcTemplate/ /constructor-arg/bean结束语由于 Spring 在越来越多的项目中的应用,因此基于Spring 应用的安全控制系统的研究就显得非常重要。 Acegi 提供了对Spring 应用安全的支持,然而Acegi 本身提供的实例并不能满足大规模的复杂的权限需求,本文通过扩展Acegi 的数据库设计即可满足复杂的权限需求。然而,怎样将Acegi 应用到非Spring 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

    注意事项

    本文(2022年Acegi好的笔记 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开