2022年Acegi好的笔记 .pdf
《2022年Acegi好的笔记 .pdf》由会员分享,可在线阅读,更多相关《2022年Acegi好的笔记 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Spring 框架和Acegi 安全框架介绍1、spring 框架Spring 框架是由Open Source 开发的一个优秀的多层J2EE 系统框架,它为企业级应用提供了一个非常轻量级的解决方案,大大地降低了应用开发的难度与复杂度,提高了开发的速度。Spring 框架的核心是IoC 和 AOP。IoC 是一种设计模式,即IoC 模式。 IoC 模式进一步降低了类之间的耦合度,并且改变了传统的对象的创建方法,实现了一种配置式的对象管理方式, Spring 框架中由IoC 容器负责配置性的对象的管理。IoC 模式极大的提高了系统开发与维护的灵活性。AOP 是一种编程模式,它是从系统的横切面关注问
2、题。传统的面向对象编程OOP 主要从系统的垂直切面对问题进行关注,对于系统的横切面关注很少,或者说很难关注,这样当考虑到系统的安全性、日志、事务以及其他企业级服务时,OOP 就无能为力了,只能在所有相关类中加入类似的系统服务级的代码。AOP 为解决系统级服务问题提供了一种很好的方法。 AOP 将系统服务分解成方面看待,并为类提供一种声明式系统服务方式。Java 类不需要知道日志服务的存在也不需要考虑相关的代码。所以,用AOP 编写的应用程序是松耦合的,代码的复用性就提高了。2、Acegi 安全框架借助于 Spring 框架,开发者能够快速构建结构良好的WEB 应用,但现有的Spring 框架本
3、身没有提供安全相关的解决方案。同样来自于Open Source 社区的 Acegi 安全框架为实现基于 Spring 框架的 WEB 应用的安全控制提供了一个很好的解决方案。Acegi 本身就是利用 Spring 提供的 IoC 和 AOP 机制实现的一个安全框架,它将安全性服务作为J2EE 平台中的系统级服务, 以 AOP Aspect 形式发布。 所以借助于Acegi 安全框架, 开发者能够在Spring使能应用中采用声明式方式实现安全控制。Acegi 安全框架主要由安全管理对象、拦截器以及安全控制管理组件组成。安全管理对象是系统可以进行安全控制的实体,Acegi 框架主要支持方法和URL
4、 请求两类安全管理对象;拦截器是Acegi 中的重要部件, 用来实现安全控制请求的拦截,针对不同的安全管理对象的安全控制请求使用不同的拦截器进行拦截;安全控制管理部件是实际实现各种安全控制的组件,对被拦截器拦截的请求进行安全管理与控制,主要组件包括实现用户身份认证的AuthenticationManager 、 实 现 用 户 授权 的AccessDecisionManager 以 及 实 现 角 色转 换 的RunAsManager。安全管理对象、拦截器以及安全控制管理组件三者关系如图1所示。Acegi 安全框架在基于Spring 框架的系统中的应用1、分析系统安全性需求首先,需要明确进行安
5、全控制的对象,可为业务方法和URL 资源。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 其次,需要进一步明确,系统身份认证资料和资源授权信息的数据持久化形式。2、Acegi 安全系统数据库设计在 Acegi 框架中支持多种安全信息的持久化方式,可以在配置文件中配置或存放在关系数据库。 由于在实际应用中,需求是经常发生变化的。所以, 在配置文件中配置是满足不了实际应用需求的。 然而,Acegi 本身对权限表的设计非常简单,use
6、rs 表username,password,enabled 和 authorities 表username,authority ,这样简单的设计肯定无法适用复杂的权限需求。为了解决权限管理的复杂性,在这里引入了role(角色)的概念,使得用户和权限分离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵活地支持安全策略。同时,为了更好地配合Acegi 安全框架,还引入resource(资源)的概念,资源可分为URL 和 FUNCTION (方法)两种,一个权限可以对应多个资源。具体的数据库设计见图2。图 1 安全管理对象,拦截器和安全管理组件交互图名师资料总结 - - -精品资料欢迎
7、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 3、认证管理器,授权管理器的配置实现系统的安全控制,首先需要对系统的安全管理器和授权管理器进行配置,系统进行认证和授权需要获取安全信息,Acegi 本身提供了对认证信息的获取机制,在实现认证与授权过程中,系统将主动根据配制信息和相应的信息解释安全信息的读取。图3给出了一个将用户安全信息存储在数据库中的认证管理器的配置示意图。对应于图示的XML 配置文件的代码如下:/* 配置数据库datasource 和 Acegi
8、的 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
9、- - - - - 第 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 be
10、an= ”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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Acegi好的笔记 2022 Acegi 笔记
限制150内