如果你觉得自己写一个安全系统比较累,那建议你试一试Acegi这个开源框架,它与Spring能很好的结合,从多方面保护您的软件系统。
Acegi说穿了也就从两个方面保护资源:
一、是利用Servlet的过滤器,来拦截Servlet的请求
二、是利用Spring的AOP,(其实Servlet的过滤器也是AOP)
先来说说Servlet过滤,Acegi由认证管理器来确定用户身份,Acegi默认提供了一个认证管理器——ProvideManager,ProvideManager的authenticate()方法,认证一个Authentication对象,通过用户名(j_username)和密码(j_password)作为参数进行认证,如果验证通过,将用户名保存在session中。当然,你也可以自己写一个认证管理器来实现一些特殊的功能,不过,你需要实现org.acegisecurity.AuthenticationManager接口:
当然,你需要再Spring的配置文件中,将这个认证管理器加载进来:
xml 代码
<list></list>
-
- <bean id="authenticationManager"
- class="org.acegisecurity.providers.ProviderManager">
- <property name="providers">
- <list>
- <ref local="daoAuthenticationProvider" />
- <ref local="rememberMeAuthenticationProvider" />
- list>
- property>
- bean>
xml 代码
-
- <bean id="jdbcDaoImpl"
- class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
- <property name="dataSource" ref="dataSource" />
- <property name="usersByUsernameQuery">
- <value>
- SELECT manager_passport, manager_pwd, isuse FROM
- tb_mms_manager WHERE isuse = 1 and manager_passport = ?
- </value>
- </property>
- <property name="authoritiesByUsernameQuery">
- <value>
- SELECT manager_passport,op_code FROM tb_mms_manager m,
- tb_mms_op o, tb_mms_powergroup p WHERE m.power_group =
- p.group_id and p.group_op like '%|' +
- convert(varchar(2),o.op_id) + '|%' and
- m.manager_passport = ?
- </value>
- </property>
- </bean>
usersByUsernameQuery属性验证了用户名和密码,值得一提的是usersByUsernameQuery,必须是三个属性,用户名,密码,以及是否可用,除非你重写这个方法,不然三个属性缺一不可。authoritiesByUsernameQuery列举了该用户的所有权限,这里介绍的所有配置,基本上都是用Acegi默认的类来配置的,如果需要扩展功能,完全可以自己定义类来写。
中提供了一系列认证提供者,比较常用的认证提供者类型有:DaoAuthenticationProvider(从数据库中获取用户信息)、PasswordDaoAuthenticationProvider(让底层数据源完成)等,他们都是实现了AuthenticationProvider接口。该接口定义了与ProvideManager相同的authenticate()方法。
然后定义daoAuthenticationProvider
分享到:
相关推荐
总结,Acegi框架是Spring生态系统中的重要组成部分,它为开发者提供了强大而灵活的安全管理工具。虽然已被Spring Security取代,但理解Acegi的基础可以帮助我们更好地理解和利用Spring Security,为Java企业级应用...
Acegi Security,现已被Spring Security所取代,是Spring框架生态系统中的一个强大安全组件,用于构建安全的Web应用程序。本文将深入探讨如何利用Acegi来增强基于Spring的应用程序的安全性,并结合给定的资源进行...
总结来说,Spring_Acegi框架通过`Filter`机制实现了Web应用的鉴权流程。`AuthenticationProcessingFilter`作为关键组件,负责处理请求的认证,而`Authentication`对象则是承载用户身份验证信息的核心实体。通过这种...
总结一下,Acegi作为一个强大的安全框架,对于理解和实践Java企业级应用的安全控制至关重要。通过学习和实践提供的示例代码以及参考学习网址,你可以深入了解Acegi的功能,并将其应用到自己的项目中,确保应用的安全...
总结来说,本实战教程将引导你深入了解如何利用Acegi Security为Spring框架的Web应用添加安全防护,包括用户认证、授权、会话管理等多个方面。虽然Acegi Security已被Spring Security取代,但其核心理念和实践方法...
"Acegi框架总结(一) - Spring - Java - JavaEye论坛.mht"可能是一个系列文章的开头,全面总结了Acegi框架的核心特性,可能包括其工作原理、核心组件以及与Spring的集成方式。这样的总结对于理解和掌握Acegi的整体...
总结起来,Spring Acegi是一个强大的安全框架,它的功能包括用户认证、权限控制和安全拦截。通过理解其核心组件和配置机制,你可以有效地保护Spring应用,确保只有授权的用户能访问敏感资源。如果你正在处理一个使用...
总结,Acegi Security 1.0.7作为Spring框架的重要补充,为企业级应用的安全保驾护航。通过深入理解和合理运用其特性,开发者可以构建出符合安全标准且用户体验良好的应用程序。在实际开发过程中,需要根据项目需求...
Acegi Security是Spring框架的一个子项目,旨在为应用提供安全控制功能,包括身份验证、授权和会话管理等。而CAS是由耶鲁大学开发的一个开源单点登录(Single Sign-On,SSO)解决方案,它允许用户通过一次登录即可...
Spring ACEGI是Spring Security的前身,它是一个强大的、高度可配置的安全框架,专为Java企业级应用设计。这个框架旨在提供全面的身份验证、授权和服务层安全功能,允许开发者轻松地在Spring应用中实现复杂的安全...
Acegi Security是一款经典的Java安全框架,它为Spring框架提供了安全集成。在本案例中,我们关注的是`acegi-security-resin-0.8.1.1.jar.zip`这个压缩包,其中包含了`acegi-security-resin-0.8.1.1.jar`文件和`...
Acegi是一个专为Spring框架设计的安全框架,旨在为基于Spring的应用程序提供全面的安全防护。它利用Spring的依赖注入(DI)和面向切面编程(AOP)功能,为开发者提供了灵活且强大的安全解决方案。 **特点:** - **...
Acegi Security Tiger 1.0.7 是一个用于Java Web应用程序的安全框架,它在Spring框架之上提供了一套全面的身份验证和授权服务。这个版本的jar文件"acegi-security-tiger-1.0.7.jar"是该框架的核心库,包含了实现安全...
总结,Grails Acegi 0.5插件是Grails框架下的一种重要安全解决方案,它引入了Spring Security的经典功能,为Grails开发者提供了强大的身份验证和授权手段。虽然随着时间的推移,新的安全框架和插件不断涌现,但了解...
首先,"Acegi安全系统介绍.doc"文档很可能是对Acegi框架的基础概述,它可能涵盖了Acegi的核心概念,如安全上下文、访问决策管理器、认证和授权流程。文档可能会讲解Acegi如何通过过滤器链与Spring MVC协同工作,拦截...
Acegi Security是Spring社区早期开发的一个安全框架,用于增强J2EE应用程序的安全性。这个框架在Spring Security(之前称为Acegi Security)的后续版本中得到了发展和改进,成为了Spring生态中的核心组件。本文将...
ACEGI Security(Acceleo Component for Eclipse Generative Security)是Java领域中一个历史悠久的安全框架,它为Spring框架提供了一套全面的安全管理解决方案。在"acegi-security-1.0.7"这个版本中,包含了完整的...
Acegi Security是Spring Security的前身,它是一款强大的Java安全框架,用于处理Web应用程序的安全性问题。在本实例中,我们将探讨Acegi Security的配置、详细设置以及如何通过代码实现其功能。 首先,让我们理解...