`

Acegi安全框架

    博客分类:
  • java
 
阅读更多
Acegi是为基于Spring的应用提供的声明式安全框架。它通过在Spring的应用上下文中配置一系列的Bean完成安全设置,完成利用了Spring提供的依赖注入和IoC编程方式。
为了保证Web应用的安全需求,Acegi使用过滤器拦截servlet请求,并执行认证来执行安全措施。
Acegi通过安全方法级调用来执行更低层次的安全需求。通过使用Spring的AOP,Acegi使用代理对象来确保用户有适当的权限来调用被保护的方法。
无论是较高层次的Web应用的安全,还是较低层次的方法级安全,Acegi都可以通过四个主要组件完成安全需求。
图一
Security Interceptor 用于拦截那些需要访问受保护资源的请求。
Authentication Managers 用于验证主体的身份,如你的principal(典型的如用户名)和你的Credentials(典型的如密码)。能过验证,可以证明Who are you 。
Access Decision Mangers 用于决定已验证通过的principal是否有访问受保护资源的特权。
Run-as Managers 尽管你通过了验证和并得到授权可以访问资源,但可能还会有更多的安全约束:例如,你可能得到了查看某个Web页面的权力,但是页面中可以还有比Web页面安全级别更高的对象。Run-as manager 正是用于这方面的验证。尽管这方面的需求不多,但Acegi通过Run-as Managers可以做到这一点。
管理验证
Acegi定义了AuthenticationManager接口,用于安全验证,同时提供了代理类ProviderManager以及它的相关实现,它们可以完成大部分相应的功能,而不需要我们自己开发。
图二
通过Acegi和CAS实现SSO
耶鲁大学的CAS是SSO的一个解决方案。CAS的细节内容已经超出了本文的讨论范围。为了理解Acegi如何与基于CAS验证的应用相结合的问题,有必要看一下一个典型的CAS验证例子是如何工作的。详见前面研究过的CAS的文档。
你应该理解的一个关键概念就是这个受保护的应用根本不处理用户的Credentials。当用户打算登录应时时,实际上他们登录的是CAS Server.。应用根本不知道用户的Credentials。唯一要做的就是验证用户的ticket是否有效,这个ticket是由CAS Server 发放的。这是一件好事,因为它意味着只有一个应用(即CAS)负责处理用户的验证。
当CAS与Acegi配合使用时,Acegi要做的就是在应用上校验CAS ticket的工作。这使得应用本身可以不管CAS的身份验证过程。
Acegi通过CasAuthenticationProvider类达到这个目的,它不关心用户名和密码,而是接受一个CAS Ticket作为它的Credentials。除了配置CasAuthenticationProvider类以外,还需要在Spring的配置文件中配置其它几个辅助类,它们分别是.CasProxyDecider及其子类。
访问控制
身份验证只是Acegi的第一步。一旦Acegi知道用户是谁,接下来它必须决定用户是否有权访问被保护的资源。这是通过 Access Decision Managers完成的。Acegi定义了net.sf.acegisecurity.AccessDecisionManager接口,它的supports()方法决定该应用是否有权做出访问控制,decide()方法最终是否可以访问,如果不可以访问该资源,应抛出AccessDeniedException。
AccessDecisionManager有三个实现类,分别是net.sf.acegisecurity.vote.AffirmativeBased,net.sf.acegisecurity.vote.ConsensusBased
net.sf.acegisecurity.vote.UnanimousBased。AccessDecisionManager做出决定并不是通过它自己,而是把轮询一个或更多年对象,这些对象对这个用户是否有权访问受保护的资源进行投票。一旦得到所有的投票,AccessDecisionManager会对这些投票进行计数,并做出最终决定。
保护Web应用
Acegi对Web应用的保护是强依赖于过滤器的。这些过滤器在请求被应用处理之前进行拦截,并进行安全控制。根据应用的实际需求,Acegi可以使用6个过滤器,它们分别是
过滤器
功能
Channel-processing filter
确保请求是通过SSL提交的(HTTPS)
Authentication-processing filter
接受验证请求,并将其导向验证管理器进行验证
CAS-processing filter
接受CAS服务的ticket作为经过CAS验证的证明
HTTP Basic authorization filter
Processes authentication performed using HTTP Basic authentication
Integration filter
Handles storage of authentication between requests (in HTTP Session,for example)
Security enforcement filter
Ensures that a user has been authenticated and meets the property
authorization requirements to access a secured web resource
接受一个请求以后,它以下面的顺序进行。
图四 执行顺序


 

 

分享到:
评论

相关推荐

    acegi安全框架简介

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

    Acegi安全框架简介及实用扩展

    Acegi安全框架简介及实用扩展,spring acegi 权限管理

    acegi安全框架例子

    Acegi安全框架是Spring Framework的一个强大补充,专为应用程序安全设计。它提供了全面的身份验证、授权和服务保护功能,使得开发者可以轻松地在Spring应用中实现复杂的安全需求。本例将探讨Acegi安全框架的主要概念...

    acegi 安全框架实例

    Acegi安全框架是一款基于Spring AOP(面向切面编程)的高级安全认证和授权框架,它为Java应用程序提供了全面的安全管理解决方案。Acegi的核心功能包括用户身份验证、访问控制、会话管理以及密码加密等,使得开发者...

    基于spring的Acegi安全框架认证与授权的分析及扩展.pdf

    ### 基于Spring的Acegi安全框架认证与授权的分析及扩展 #### 1. Acegi安全框架的概述 Acegi(后更名为Spring Security)是Spring框架中的一个子项目,专注于提供强大的安全功能,包括认证、授权以及保护web应用...

    基于Acegi安全框架的权限管理研究与实现.

    ### 基于Acegi安全框架的权限管理研究与实现 #### 摘要与背景 在当前的软件开发领域,尤其是针对Java Web应用程序的安全性设计尤为重要。一个完整的Java Web应用系统不仅需要强大的功能模块来支撑业务逻辑,还需要...

    Spring集成Acegi安全框架在J2EE中的应用

    Spring Framework是一个开发J2EE应用的优秀框架,Spring本身没有提供对系统安全方面的...使得系统的安全逻辑和业务逻辑完全分离,通过在Spring中引入Acegi安全框架不仅节省工作量,提高编码效率,同时提高代码质量。

    Acegi安全框架下实现的通用权限管理系统 (2010年)

    把Acegi安全框架引入到SSH(表现层+控制层+持久层)架构中,对Acegi安全框架进行配置动态扩展,实现一个通用权限管理子系统畅对可能出现的问题进行分析,分别给出相应的解决方案。把子系统应用到一个账单管理系统中,其...

    Acegi安全系统介绍.doc

    Acegi安全框架为Spring应用提供了全面的安全保护方案,通过灵活配置上述核心组件,开发者可以轻松实现不同层次的安全控制,确保应用程序的安全性和稳定性。无论是Web层的安全防护还是业务逻辑层的方法调用控制,...

    acegi安全策略与CAS整合

    文档的目的是确保用户能够成功地将AceGI安全框架集成到他们的应用程序中,利用CAS服务器进行单点登录(SSO)和身份验证,以提高系统的安全性。 0.2 文档范围: 此文档涵盖了从安装CAS服务器,配置AceGI安全策略,到...

    基于Spring的安全框架Acegi在Web系统中的应用.pdf

    为了解决这一问题,Acegi安全框架作为一种基于Spring的安全架构被提出并广泛应用。 #### Acegi安全框架概述 Acegi安全框架是一个基于Spring Framework的安全管理框架,能够与主流的Web容器无缝集成。它利用Spring...

    Acegi-spring安全框架

    Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...

    Acegi使用.pdf

    ### Acegi安全框架详解 #### 引言 Acegi安全框架是专为Spring框架设计的安全解决方案,它通过深度集成Spring的特性,提供了一套全面、灵活的安全管理方案。不同于传统的安全框架,Acegi采用了面向切面编程(AOP)...

    Acegi安全权限管理手册

    Acegi安全权限管理手册是一本全面介绍Acegi安全框架在权限管理方面应用的权威指南。Acegi Security是Spring框架的一个扩展,它为Java应用程序提供了强大的安全性和权限控制功能。在这个手册中,读者将深入理解如何...

    Acegi框架介绍 acegi安全与认证

    【Acegi框架介绍 acegi安全与认证】 Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring的企业级应用。它通过Spring的依赖注入(IoC)和面向切面编程(AOP)功能,提供了声明式的...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.rar

    通过本实战教程,读者将学习到如何设置Acegi安全框架,创建自定义认证和授权逻辑,以及如何调试和优化安全配置,以确保Spring应用的安全性和稳定性。尽管Acegi已被Spring Security所取代,但其核心理念和使用方法在...

    Practical Quick Start with Acegi Security

    ### 实践快速入门Acegi安全框架 #### 一、引言 Acegi安全框架作为Spring框架的一个重要子项目,提供了一套完整的安全解决方案,适用于基于Spring的企业级应用。本篇文章将根据提供的文件信息,深入探讨Acegi安全...

    使用 Acegi 保护 Java 应用程序: 续二

    Acegi 安全框架是 Spring 框架的一个扩展,用于提供高级的身份验证和授权功能。在"使用 Acegi 保护 Java 应用程序:续二"这篇博文中,作者可能详细介绍了如何集成 Acegi 安全框架到 Java 应用程序中,以及如何配置和...

    Acegi 数据库配置安全策略 源代码及图解

    1. **Acegi安全框架**:Acegi是Spring的一个扩展,主要用于处理认证和授权问题,提供了一种声明式的安全控制方式。通过Acegi,开发者可以在控制器、服务层或者DAO层添加安全控制,无需在每个方法中手动检查权限。 2...

    现基于Spring框架应用的权限控制系统

    本文主要讨论的是如何在基于Spring框架的应用中实现权限控制系统,特别提到了Acegi安全框架的使用。Spring框架是一个流行的多层J2EE应用框架,它提供了IoC(控制反转)和AOP(面向切面编程)功能,但本身并不包含...

Global site tag (gtag.js) - Google Analytics