1Acegi安全系统介绍
Acegi始于2003年晚期,当时在Spring Developers邮件列表中有人提问是否有人考虑提供一个基于Spring的安全实现。当时,Srping的社区是相对比较小的(尤其是和今天相比!),实际上Spring本身也是2003年早期才作为一个SourceForge项目出现的。对此问题的回应是它确实是一个值得研究的领域,虽然限于时间无法进行深入。
有鉴于此,这个简单的安全实现虽然构建了但是并没有发布。几周以后,Spring社区的其他成员询问了安全框架,代码就被提供给了他们。随后又有人请求,到了2004年一月,大约有20人左右在使用这些代码。另外一些人加入到这些先行的用户中来,并建议建立一个SourceForge项目,这个项目在2004年3月建立起来。
在早期,该项目自身并不具备任何认证模块。认证过程依赖容器管理安全(Container Managed Security)而Acegi注重授权。在一开始这样是合适的,但是随着越来越多的用户要求额外的容器支持,基于容器的认证的限制就显示出来了。另外一个相关的问题是添加新的JAR文件到容器的classpath,通常会让最终用户感到困惑并且配置错误。
随后,Acegi加入了认证服务。大约一年后,Acegi成为了一个Spring Framework官方子项目。在2年半多的在多个软件项目中的活跃使用以及数以百计的改进和社区贡献,1.0.0最终版在2006年5月发布。
今天,Acegi Security成为一个强大而活跃的社区。在支持论坛上有数以千计的帖子。14个开发人员专职开发,一个活跃的社区也定期共享补丁并支持他们的同侪。
现在的Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring对依赖注入和面向切面编成的支持。
当保护Web应用系统时,Acegi使用Servlet过滤器来拦截Servlet请求,以实施身份认证并强制安全性。并且,Acegi采取了一种独特的机制来声明Servlet过滤器,使你可以使用Spring IoC注入它所依赖的其他对象。(该方法建议查看源码,会有些启发)
Acegi也能够通过保护方法调用在更底层的级别上强制安全性。使用Spring AOP,Acegi代理对象,将“切面”应用于对象,以确保用户只有在拥有恰当授权时才能调用受保护的方法。
无论你正在保护一个Web应用还是需要方法调用级别的安全性,Acegi都是使用如下的4个主要组件来实施安全性:
安全拦截器、认证管理器、访问决策管理器、运行身份管理器。
1.1安全拦截器
在Acegi中,我们可以把安全拦截器想象成一扇上着两把锁的大门(这两把锁有着严格的规定,必须先开第一把锁,然后才能开第二把锁),它阻止对应用系统中受保护资源的访问。为了要访问受保护的资源,你首先必须向这扇上着锁的大门提供钥匙(对于系统来说,通常就是用户名和密码)来开第一把锁,然后才是第二把锁。
1.2认证管理器
认证管理器就是那第一把锁,当你向那扇上着锁的大门提供了钥匙后,即你向系统提供了用户名和密码后,认证管理器就要负责认证你的钥匙是否有效,即你的用户名和密码是否正确。如果钥匙有效,用户名密码正确,那么认证管理器就要给你一个可以代表你身份的标识,即确定你是谁,那么你打开了第一把锁,然后你要去开第二把锁才能访问被保护的资源。
1.3访问决策管理器
访问决策管理器就是那第二把锁,你要向第二把锁提供钥匙,来开启它。对于认证管理器来说,这第二把钥匙就是你的授权,如果你被授予了访问该受保护资源的权限,那么访问决策管理器就会帮你打开第二把锁。这样安全拦截器的那扇大门就会为你打开,让你访问受保护的资源。
1.4运行身份管理器
当你打开了认真管理器和访问决策管理器这两把锁,并打开了安全拦截器这扇大门之前,安全拦截器也许还有一件事情要做。
即时你已经通过身份认证并且已经获得了访问被保护资源的授权,门后也许还有更多的安全限制在等着你。比如,你也许已被授权访问查看某个Web页面,但用于创建该页面的对象与许和页面本身有不同的安全需求。一个运行身份管理器可以用另一个身份替换你的身份,从而允许你访问应用系统内部更深处的受保护对象。
运行身份管理器的用处在大多数应用系统中是有限的。幸运的是,当你使用Acegi保护应用系统时可以不必使用甚至不必完全理解运行身份管理器。
分享到:
相关推荐
JAVA开发专家:敏捷Acegi、CAS:构建安全的Java系统 pdf
### Acegi安全系统知识点概述 #### 一、Acegi安全系统简介 Acegi是一个专为Spring框架设计的安全框架,旨在为基于Spring的应用程序提供全面的安全防护。它利用Spring的依赖注入(DI)和面向切面编程(AOP)功能,...
配置Acegi安全系统能够轻松地适用于复杂的安全需求。它既能应用于WEB应用也能应用于非WEB应用。在 本文的示例程序 里,我将演示如何将Acegi应用于WEB应用程序。通过这个例子详细介绍如何配置Acegi的各个组件,同时...
【Acegi框架介绍 acegi安全与认证】 Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring的企业级应用。它通过Spring的依赖注入(IoC)和面向切面编程(AOP)功能,提供了声明式的...
Acegi 安全系统是一个专为基于 Spring 的应用程序设计的安全框架,它利用 Spring 的依赖注入和面向切面编程(AOP)能力来提供强大的安全保护。Acegi 的核心功能包括安全拦截器、认证管理器、访问决策管理器和运行...
资源名称:敏捷Acegi、CAS.构建安全的Java系统资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Acegi是Spring Security的前身,它是一个强大的、可配置的安全框架,用于构建安全的Java Web应用程序。本实战教程将深入探讨如何将Acegi集成到基于Spring的Web应用中,以实现用户认证、授权以及安全控制等功能。 ...
Acegi 是一个强大的 Java 安全框架,专用于系统安全编程,尤其在处理认证和授权方面表现出色。在本文中,我们将深入探讨 Acegi 的基本概念、如何设置以及它如何与 Spring 框架集成。 首先,让我们了解 Acegi 的核心...
而Acegi Security是Spring社区早期的一个安全模块,它提供了全面的身份验证、授权和会话管理功能,为基于Spring的应用程序提供了强大的安全性支持。本实战教程将深入探讨如何将Acegi Security集成到Spring框架中,...
《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架》这本书提供了一个很好的起点,它详细介绍了如何设置和使用Acegi,以及如何解决实际开发中的安全问题。 总的来说,Acegi为基于Spring的Web应用提供...
敏捷Acegi、CAS++构建安全的Java系统pdf——part5
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
这份技术文档的主要目标是为开发者和系统管理员提供一个清晰的指南,以便他们理解和实施AceGI安全策略与CAS服务器的整合。文档覆盖了从基础配置到高级定制的所有阶段,并适用于对AceGI和CAS有一定了解的技术人员。 ...
Acegi安全系统是Spring Framework中的一个强大的安全组件,它的核心目标是为企业级应用提供全面而灵活的安全服务。Acegi的特点在于其非入侵式的安全架构,它通过Servlet Filter和Spring AOP来实现,使得业务逻辑与...
标题和描述均提及了“Spring安全系统:Acegi Security”,这是一种专为Spring Framework设计的安全解决方案,旨在提供强大的认证和授权功能。Acegi Security,后更名为Spring Security,是Spring生态系统中的重要...
6. **与Spring的集成**:Acegi Security与Spring的IoC容器紧密结合,使得安全相关的组件可以作为bean进行配置,这简化了系统的组装和测试。 7. **Web表单登录**:Acegi Security支持标准的HTML表单登录,可以自定义...
Acegi安全系统是Spring Framework的一个重要组件,专用于提供企业级的安全服务。它是一个非侵入式的安全架构,能够确保应用程序的安全性与业务逻辑相分离,使得系统结构更加清晰。Acegi通过Servlet Filter和Spring ...
Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...