`

Acegi简介

阅读更多
在Acegi安全系统中,需要被认证的用户,系统或代理称为"Principal"。Acegi安全系统和其他的安全系统不同,它并没有角色和用户组的概念。

Acegi系统设计

关键组件
Acegi安全系统包含以下七个关键的功能组件:
1 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对象。
分享到:
评论

相关推荐

    spring Acegi

    Spring安全系统:Acegi Security Acegi简介! Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,...

    acegi集成CAS示例

    1. **AceGI简介**:AceGI是基于Spring的,提供了包括认证、授权、会话管理在内的安全服务。它允许开发者通过声明式配置来控制应用程序的安全性,无需编写大量安全相关的代码。 2. **CAS简介**:CAS是一种开放标准,...

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

    1. **Acegi简介**: Acegi是一个强大的、可配置的安全框架,它提供了认证、授权、会话管理等功能,能够与Spring无缝集成,为Web应用程序提供全面的安全保护。Acegi的核心概念包括安全上下文、访问决策管理器和权限...

    Acegi开发指南.

    #### 一、Acegi简介 **Acegi**是一个基于Spring框架的安全性解决方案,专门设计用于Web应用的安全控制。Acegi的主要优势在于它提供了一种声明式的安全控制方式,允许开发者通过配置而非编写复杂的代码来实现安全性...

    Acegi_使用.doc

    #### Acegi简介 Acegi安全系统是专为Spring Framework设计的安全框架,能够无缝集成到各种Web容器中。该系统通过利用Spring的特性(如Bean Context、拦截器和面向接口编程)提供了强大的认证和授权功能,非常适合...

    学习Acegi-认证 文档

    #### 一、Acegi简介与背景 Acegi是Spring Security的前身,是一款基于Spring框架的安全管理工具,旨在为应用程序提供安全控制功能,包括身份验证(Authentication)和授权(Authorization)。Acegi的核心优势在于其...

    Spring Acegi(2)

    Spring Acegi简介** Spring Acegi是Spring Framework的一个模块,专门设计用来处理Web应用程序的安全需求。它提供了一种声明式的方式来控制访问权限,支持身份验证、授权、会话管理和CSRF防护等关键功能。 **2. ...

    acegi安全框架简介

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

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

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

    Spring ACEGI手册(部份)

    **Spring ACEGI安全框架简介** Spring ACEGI是Spring Security的前身,它是一个强大的、高度可配置的安全框架,专为Java企业级应用设计。这个框架旨在提供全面的身份验证、授权和服务层安全功能,允许开发者轻松地...

    Spring的ACEGI的应用

    Acegi Security简介** Acegi Security是Spring框架的一个扩展,它为Spring应用程序提供了全面的身份验证和授权服务。这个库允许开发者以声明式的方式配置安全规则,从而使得代码更加简洁,易于维护。 **2. 安装与...

    acegi+ssh动态实现基于角色的权限管理

    #### Acegi安全框架简介 Acegi安全框架,后更名为Spring Security,是一个非常强大且灵活的安全管理框架,它为Java应用提供了认证、授权、安全服务等一整套解决方案。通过Acegi,开发者可以轻松地实现复杂的权限...

    acegi数据库版+方法版

    1. **Acegi Security简介**: Acegi Security是Java企业级应用程序的安全框架,它在Spring框架之上构建,提供了细粒度的访问控制、身份验证和授权功能。这个框架允许开发者通过声明式的方式管理安全性,使得代码更...

    ldap与Acegi? ----Acegi配置文件解剖

    **LDAP简介** LDAP是一种轻量级目录访问协议,用于存储和检索分布式目录服务中的数据。它被广泛用于存储用户账户信息、组织结构等,以便于进行身份验证和授权。通过LDAP,应用程序可以轻松地查找、修改和管理用户的...

    spring+acegi+中文手册

    #### 一、Acegi 安全系统简介 Acegi 安全框架是一种专为基于 Spring 的应用系统设计的安全解决方案,旨在为这些系统提供描述性的安全保护。它由一组可以配置在 Spring 应用上下文中的 Bean 组成,充分利用了 Spring...

    acegi的详细配置实现

    ##### 1.2 Acegi Security简介 Acegi Security是一个强大的Spring安全插件,它通过提供灵活且可扩展的安全解决方案来保护应用程序免受各种攻击。该插件支持多种认证机制,如表单认证、基本认证(BASIC)、摘要认证...

    使用Acegi作为基于Spring框架的WEB应用的安全框架

    1. **Acegi Security简介** Acegi Security(现称为Spring Security)是一个灵活且强大的安全框架,它提供了认证、授权、会话管理以及防止常见的Web攻击等功能。它与Spring框架紧密结合,使得在Spring应用中添加...

Global site tag (gtag.js) - Google Analytics