`
javafenger
  • 浏览: 243186 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

本周工作-学习计划!

阅读更多

  本周工作-学习计划!

  重点掌握AcegiSecurity安全系统,为基于spring架构的web系统增加安全机制!

  Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。

  AcegiSecurity安全系统略述如下:

  Acegi安全系统包含以下七个关键的功能组件:
         l Authentication对象,包含了Principal,Credential和Principal的授权信息。同时还可以包含关于发起认证请求的客户的其他信息,如IP地址。
        2 ContextHolder对象,使用ThreadLocal储存Authentication对象的地方。
        3 AuthenticationManager,用于认证ContextHolder中的Authentication对象。
        4 AccessDecissionManager,用于授权一个特定的操作。
        5 RunAsManager,当执行特定的操作时,用于选择性地替换Authentication对象。
        6 Secure Object拦截器,用于协调AuthenticationManager,AccessDecissionManager,RunAsManager和特定操作的执行。
        7 ObjectDefinitionSource,包含了特定操作的授权定义。

   Acegi安全系统目前支持两类安全管理对象。
       第一类的安全管理对象管理AOP Alliance的MethodInvocation,开发人员可以用它来保护Spring容器中的业务对象。为了使Spring管理的Bean可以作为MethodInvocation来使用,Bean可以通过ProxyFactoryBean和BeanNameAutoProxyCreator来管理,就像在Spring的事务管理一样使用。
       第二类是FilterInvocation。它用过滤器(Filter)来创建,并简单地包装了HTTP的ServletRequest,ServletResponse和FilterChain。FilterInvocation可以用来保护HTTP资源。通常,开发人员并不需要了解它的工作机制,因为他们只需要将Filter加入web.xml,Acegi安全系统就可以工作了。

   安全配置参数

        每个安全管理对象都可以描述数量不限的各种安全认证请求。例如,MethodInvocation对象可以描述带有任意参数的任意方法的调用,而FilterInvocation可以描述任意的HTTP URL。
       Acegi安全系统需要记录应用于每个认证请求的安全配置参数。例如,对于BankManager.getBalance(int accountNumber)方法和BankManager.approveLoan(int applicationNumber)方法,它们需要的认证请求的安全配置很不相同。
       为了保存不同的认证请求的安全配置,需要使用配置参数。从实现的视角来看,配置参数使用ConfigAttribute接口来表示。Acegi安全系统提供了ConfigAttribute接口的一个实现,SecurityConfig,它把配置参数保存为一个字符串。
       ConfigAttributeDefinition类是ConfigAttribute对象的一个简单的容器,它保存了和特定请求相关的ConfigAttribute的集合。
       当安全拦截器收到一个安全认证请求时,需要决定应用哪一个配置参数。换句话说,它需要找出应用于这个请求的ConfigAttributeDefinition对象。这个查找的过程是由ObjectDefinitionSource接口来处理的。这个接口的主要方法是public ConfigAttributeDefinition getAttributes(Object object),其中Object参数是一个安全管理对象。因为安全管理对象包含有认证请求的详细信息,所以ObjectDefinitionSource接口的实现类可以从中获得所需的详细信息,以查找相关的ConfigAttributeDefiniton对象。

  Acegi如何工作

       为了说明Acegi安全系统如何工作,我们设想一个使用Acegi的例子。通常,一个安全系统需要发挥作用,它必须完成以下的工作:
       l 首先,系统从客户端请求中获得Principal和Credential;
      2 然后系统认证Principal和Credential信息;
      3 如果认证通过,系统取出Principal的授权信息;
      4 接下来,客户端发起操作请求;
      5 系统根据预先配置的参数检查Principal对于该操作的授权;
      6 如果授权检查通过则执行操作,否则拒绝。

  重点参考教材-spring in action 之 如何保护你的web系统!

  网络相关资源!

  在web系统中应用acegic安全系统!



分享到:
评论

相关推荐

    肖洒本周完成的工作(12_12-12_18)1

    姓名本周完成的工作是否完成上周计划从工作室项目中学习到了什么新的知识下周的计划总结从项目中学习知识比较快,也更容易上手一门编程语言。肖洒完成了简单爬虫的实现,用

    肖洒本周完成的工作(12_19-12_25)1

    姓名本周完成的工作是否完成上周计划从工作室项目中学习到了什么新的知识下周的计划总结曲线救国的方法虽然不可取,但是能抓到老鼠的猫就是好猫;对上周出现了问题有了新的

    Upkey-VIP-Spring:Upkey 的虚拟实习计划 (VIP) 是一项全球体验式学习计划,重点介绍领导力、财务、营销和创业等管理职能。 此存储库包含我在作为 Upkey VIP 实习生期间完成的项目的工作

    Upkey VIP 春天Upkey 的虚拟实习计划 (VIP) 是一项全球体验式学习计划,重点介绍领导力、财务、营销和创业等管理职能。 这个存储库包含我在作为 Upkey VIP 实习生期间完成的项目的工作。 您可以通过 Upkey 网站上的...

    周计划自动生成表Excel模板

    周计划自动生成表是一种在Excel中使用的模板,它可以帮助个人或团队规划一周的工作或学习任务,并通过自动化功能提高效率。以下是一个周计划自动生成表Excel模板的介绍: 模板名称:周计划自动生成表 适用场景: ...

    data-structures-and-algorithms-by-[removed]数据结构与算法学习笔记

    学习计划 学习目标 学会基本数据结构与算法,应对大厂面试题 工作涉及到的数据、算法操作,无压力 熟练掌握王争老师讲的20 个最常用的、最基础数据结构与算法 学习方式 每周三节课,github project 看板规划本周学习...

    训练自己的GPT得过程

    GPT-4 的发布让大家对 LLM 的想象空间进一步扩大,而这些想象在本周眼花缭乱的 LLM 应用发布中逐渐成为现实,下面分享一位朋友训练ChatGPT的完整方案,供大家参考~ LLM 相关的开源社区这两周涌现了很多优秀的工作,...

    nav_in_flatland

    在测试模式下测试特定方案中的各种计划者(基于学习和基于模型) 扩展新功能和方法的模块化结构 文档和参考 如何使用平地: : ROS导航堆栈: : :将被集成 完整的文档和系统设计本周发布 1.安装 1.1。 标准ROS...

    AITimesheet:自我学习时间表-开源

    每周我们都必须向老板们汇报,本周所做的工作以及计划在下周进行的工作。 AITimesheet在此活动中有很大帮助。

    cloudDesktop

    基于openstack的云桌面系统项目课程简介让学生了解openstack集成部署、体验vinzor云晫云课室管理系统的安装...学习周报格式本周具体工作计划本周主要工作内容已经完成工作未完成工作问题与困难下周工作计划建议与意见

    bowling-challenge

    像往常一样,请从填写您本周的学习计划自我审查: : (如果您还没有) - 请注意下周是实验室周,因此请提供有关您计划工作的项目的信息上分叉这个 repo 最后在周一早上 9 点之前提交拉取请求,并附上您的解决方案或...

    互联网程序员都每天刷题嘛-ProcessingAtTheY:处理在他们

    但是,如果你能度过困顿、不知道下一步该做什么的时候,并且一起工作,互相依赖学习你不知道的东西,你就可以做到。 我(斯图尔特)已经看到这种方法适用于各种学科……数学、科学、建筑。 次要目标 * 学习一些...

    java面试题笔试题-Sprint-Challenge--Java-Frameworks-java-bookstore:冲刺挑战--Java-

    在此冲刺期间,您学习了异常处理、用户身份验证、自动化测试和部署。 在本周的挑战中,您将通过创建Java Spring REST API 应用程序来展示您对这些技能的掌握程度。 这是个人评估。 所有的工作都必须是你自己的。 您...

    冲刺挑战-算法

    冲刺挑战:算法在本周的Sprint中,您探索并实现了一些经典的算法方法,并使用它们来解决新颖的问题。 您还实现了一些经典的基本排序算法,并学习了如何评估它们各自的运行时和性能。 本次Sprint挑战旨在通过根据您...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和...

    php OA 源码 办公自动化源码

    工作计划:做出本周、本月、本季度或本年等的工作计划,任务目标等,在目标的指导下开展工作。 个人考勤:包括上下班登记、外出登记、请假登记、出差登记、个人考勤查询等内容。上下班登记相当于网上签到,既方便又...

Global site tag (gtag.js) - Google Analytics