`

在项目中应用Spring的Acegi安全框架的步骤

阅读更多
0、准备:配置数据源

1、配置认证管理器(org.acegisecurity.providers.ProviderManager)

1.1声明一个DAO认证提供者
即:配置AuthenticationDao的实例(依赖0步骤):

       Acegi提供了两个可供选择的AuthenticationDao的实例:InMemoryDaoImpl(内存DAO)和JdbcDaoImpl(JDBC DAO)。

       注意:InMemoryDaoImpl有明显的局限性。最主要的一点是,对安全性进行管理时要求你重新编辑Spring的配置文件并且重新部署应用。因此,反对在生产环境下使用InMemoryDaoImpl,而是应该考虑使用JdbcDaoImpl。

 
1.2选择并配置认证提供者(依赖1.1步骤)

       Acegi选择的认证提供者(黑体常用)
认证提供者 目    的
org.acegisecurity.adapters.AuthByAdapterProvider 使用容器的适配器验证身份。
org.acegisecurity.providers.cas.CasAuthenticationProvider 根据Yale中心认证服务验证身份。
org.acegisecurity.providers.dao.DaoAuthenticationProvider 从数据库中获取用户信息,包括用户名和密码。
org.acegisecurity.providers.jaas.JaasAuthenticationProvider 从JAAS登录配置中获取用户信息。
org.acegisecurity.providers.dao.PasswordDaoAuthenticationProvider 从数据库中获取用户信息,但让底层的数据源完成实际的身份验证。
org.acegisecurity.providers.rcp.RemoteAuthenticationProvider 根据远程服务验证用户身份。
org.acegisecurity.runas.RunAsImplAuthenticationProvider 针对身份已经被运行身份管理器替换的用户进行认证。
org.acegisecurity.providers.TestingAuthenticationProvider 用于单元测试。自动认为一个TestingAuthenticationToken是有效的。不应用于生产环境。

 
1.3配置认证管理器(依赖1.2步骤)

       可选配置:使用加密的密码(Acegi提供了三个密码编码器)、缓存用户信息。

  
2、授权管理器配置(实现org.acegisecurity.AccessDecisionManager接口)

      

2.1配置访问决策投票者
(实现了net.sf.acegisecurity.vote.AccessDecisionVoter接口)

 
2.2授权管理器配置(依赖2.1步骤)

Acegi提供了适用于大多数情形的AccessDecisionManager的三个实现类。

Acegi的访问决策管理器如何计票
访问决策管理器 如 何 决 策
AffirmativeBased 当至少有一个投票者投允许访问票时允许访问
ConsensusBased 当所有投票者都投允许访问票时允许访问
UnanimousBased 当没有投票者投拒绝访问票时允许访问

  
3、方法安全访问配置

 
3.1配置方法安全访问的拦截器(依赖1和2步骤)

3.2配置要安全代理的bean(依赖3.1步骤)

 
4、真正对URL资源保护的filterSecurityInterceptor配置

 
5、配置认证入口点和对应的过滤处理器

Acegi提供了三个现成的认证入口点:      

(1)、 BasicProcessingFilterEntryPoint——通过向浏览器发送一个HTTP 401(未授权)消息,由浏览器弹出登录对话框,提示用户登录;      

(2)、AuthenticationProcessingFilterEntryPoint——将用户重定向到一个基于HTML表单的登录页面;      

(3)、CasProcessingFilterEntryPoint——将用户重定向至一个Yale CAS登录页面。      

无论使用哪种认证入口点,都会提示用户需要提供用户名/密码来标识他/她自己的身份。      

当用户提交用户名和密码之后,Acegi需要通过某种方式给予认证管理器一个验证用户身份的机会。             

处理认证请求的工作由认证处理过滤器负责完成。Acegi提供了三个认证处理过滤器:      

(1)、BasicProcessingFilter——处理HTTP基本身份验证请求;      

(2)、AuthenticationProcessingFilter——处理基于表单的身份验证请求;

(3)、CasProcessingFilter——基于CAS服务票据的存在性和有效性验证用户身份。

 
       可配置基于表单的身份验证或者基本身份验证配置或者CAS身份验证。

 
6、配置安全强制过滤器(依赖4和5步骤)

7、集成处理器配置 (?) 
8、通道处理器配置(可选)

 
9、exceptionTranslationFilter是用来捕获当授权失败的时候会抛出异常

 
10、代理过滤器处理器的配置

 
11、在web.xml中配置代理过滤器

分享到:
评论

相关推荐

    acegi安全框架例子

    本例将探讨Acegi安全框架的主要概念、核心组件以及如何在实际项目中进行配置和使用。 Acegi安全框架的核心功能包括: 1. **身份验证**:Acegi允许用户通过多种方式验证其身份,如用户名和密码、数字证书等。它...

    spring的acegi应用

    标题“spring的acegi应用”指的是在Spring框架中使用Acegi安全模块进行权限管理和用户认证的一个主题。Acegi是Spring早期的一个安全组件,后来发展成为Spring Security,是Spring生态系统中的重要部分,用于提供全面...

    spring acegi 使用工程demo

    这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi是Spring Security的前身,后来被Spring Security所取代,但它的概念和...

    spring Acegi例子,很简单的一个acegi实例,容易理解

    这个例子是为初学者设计的,旨在帮助他们快速理解和应用Acegi框架。Acegi(现在已被Spring Security替代)在Spring应用程序中提供了身份验证、授权和会话管理等功能。 在Spring Acegi的例子中,我们首先需要了解的...

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

    Spring Framework作为一种广泛使用的轻量级Java应用开发框架,虽然在业务逻辑处理方面表现卓越,但在安全性支持方面有所欠缺。Acegi安全框架(后更名为Spring Security)作为Spring生态的一部分,专门为解决安全性...

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

    Acegi Security是Spring框架早期的一个安全模块,后来发展成为Spring Security,是Java Web应用程序中广泛使用的安全框架。本文将深入探讨如何将Acegi(或现在的Spring Security)集成到基于Spring的Web应用程序中,...

    菜鸟-手把手教你把Acegi应用到实际项目中(1.2)

    本教程将引导初学者逐步了解如何在实际项目中应用Acegi安全框架,以便为你的Web应用提供强大的身份验证和授权功能。 首先,让我们理解Acegi的基础概念。Acegi的核心组件包括SecurityContext、Authentication和...

    如何在Spring中集成Acegi 2.x安全框架

    在Spring框架中集成Acegi 2.x安全框架,可以实现高度可定制的权限管理和认证机制。Acegi(现已被Spring Security 2.0所取代)是Spring的一个扩展,提供了全面的安全解决方案,包括用户身份验证、访问控制、会话管理...

    Spring源代码解析(九):Spring_Acegi框架鉴权的实现.doc

    在Spring_Acegi框架鉴权的实现中,我们主要关注的是如何处理用户的登录验证以及在验证成功或失败后系统如何响应。 首先,Spring_Acegi通过实现Servlet的`Filter`接口来介入HTTP请求的生命周期。`...

    acegi安全策略与CAS整合

    适合对AceGI和CAS有基本认识,需要在项目中实现安全策略整合的开发人员和系统架构师。 0.4 参考文献: 建议读者参考官方文档和社区论坛,以获取最新的技术和问题解决方案。 0.5 术语与缩写解释: - AceGI:AceGi ...

    Acegi使用.pdf

    Acegi安全框架的工作流程可以概括为以下步骤: 1. 用户尝试访问受保护的资源。 2. SecureObject拦截器截获访问请求,并检查请求的上下文信息。 3. 如果需要认证,AuthenticationManager将被调用来验证用户的身份。 ...

    acegi在spring中的完整配置

    Acegi 安全框架是 Spring 生态系统早期的安全解决方案,它为基于 Java 的 Web 应用程序提供了全面的身份验证和授权服务。随着 Spring Security 的发展,Acegi 已被 Spring Security 继承并进一步增强,但理解 Acegi ...

    菜鸟-手把手教你把Acegi应用到实际项目中

    Acegi 是一个早期的安全框架,用于Java Spring应用中的身份验证和授权管理。这个框架使得开发者能够轻松地在Spring应用中实现复杂的权限控制。在本文中,我们将深入理解如何将Acegi应用到实际项目中,特别关注其核心...

    基于java的ACEGI

    在《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf》中,可能会详细讲解如何配置和使用Acegi。以下是一些关键步骤: 1. **添加依赖**:首先,在项目中引入Acegi的依赖库,通常是通过Maven或...

    acegi测试通过,用在项目中

    通过精心设计的测试用例,我们可以保证Acegi框架在实际项目中的正确性和可靠性。虽然Acegi已被Spring Security所取代,但理解其工作原理和测试方法对于理解现代安全框架仍然很有价值。 在进行Acegi测试时,务必遵循...

    菜鸟-手把手教你把Acegi应用到实际项目中(3)

    Acegi 是一个基于 Spring 的安全框架,用于在 Java 应用程序中实现复杂的身份验证和授权功能。在“菜鸟-手把手教你把Acegi应用到实际项目中(3)”这篇博文中,博主可能会深入讲解如何将 Acegi 集成到实际的项目中,为...

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

    通过上述步骤,开发者可以在Spring应用中建立一个高效且灵活的权限控制系统,保障系统的安全性。需要注意的是,Spring Security(原Acegi)已经进行了多次更新和改进,现在的版本提供了更多特性和更丰富的功能,如...

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

    在实际应用中,Acegi 可以与 Spring MVC 集成,为 Web 应用提供安全控制。同时,它也可以应用于基于 Spring 的服务层和数据访问层,保护非 Web 接口。 在文章的示例中,作者可能展示了如何创建一个简单的 Acegi ...

    spring+ibtis框架

    在Java Web开发中,Spring框架和iBatis(现为MyBatis)是两个广泛使用的组件。Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,而iBatis则是一个优秀的持久层框架,简化了SQL操作与Java代码的集成。...

    xfire+spring+安全认证

    Spring Security(前身为Acegi Security)是Spring框架的一个扩展,专门用于处理应用程序的安全需求。它提供了丰富的功能,包括基于角色的访问控制(RBAC)、密码存储和加密、会话管理以及防止常见的Web攻击。 结合...

Global site tag (gtag.js) - Google Analytics