就我目前对Acegi的了解,Acegi安全框架主要解决的安全问题是访问入口级别的安全问题,安全问题我将其分为三类:
1) 入口级安全
具体体现上界面上每个操作菜单,操作元素是否可操作,在服务端则对URL程序资源和业务服务类方法的限制。
2) 数据域安全
数据域控制包括两个部分,分别是:
2.1 行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位;
2.2 字段级控制 即用户可以访问数据行的哪些字段;
3)系统级安全
如访问IP段的限制,登录时间段的限制,登录次数的限制等。
Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。
严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。
所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。
Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。
严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。
所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。
1. 实例级权限控制 Acegi 通过 ACL 实现, 虽然使用上不太方便, 但它是标准的方案
2. 属性级权限控制还没听有通用的方案
3. 界面上通过 auth tag 实现控制, 一般的需求足够用了, 太特殊的也不是 security framework 管辖的范畴
4. 限登录 ip, 时间, 次数本身也不是难点, 新的版本应该会提供
.可以限制同时登录次数,详情参考springside
仿照这个写一个登录ip和时间限制的plugin一点都不难
控制ip,自己写代码
public class UserAuthenticationProcessingFilter extends AuthenticationProcessingFilter {
......
String ip = request.getRemoteAddr();
.......
Authentication authResult = getAuthenticationManager().authenticate(authRequest);
if (authResult != null && authResult.getPrincipal() instanceof UserDetails) {
UserDetails ud = (UserDetails) authResult.getPrincipal();
User user = userManager.getUserByLoginidAndPasswd(ud.getUsername(), ud.getPassword());
if (!user.getIp().equals(ip)) {
throw new IpAuthenticationException("ip没有授权");
}
}
}
。。。。
)
acegi中的acl不就是为了解决domain object的授权问题而提出的吗,我看了下,应该可以解决行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位,当然这里面不包括具体逻辑的东西,如与创建者相关的信息等。
分享到:
相关推荐
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web容器无缝集成。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全...
Acegi安全框架简介及实用扩展,spring acegi 权限管理
本例将探讨Acegi安全框架的主要概念、核心组件以及如何在实际项目中进行配置和使用。 Acegi安全框架的核心功能包括: 1. **身份验证**:Acegi允许用户通过多种方式验证其身份,如用户名和密码、数字证书等。它...
Acegi安全框架是一款基于Spring AOP(面向切面编程)的高级安全认证和授权框架,它为Java应用程序提供了全面的安全管理解决方案。Acegi的核心功能包括用户身份验证、访问控制、会话管理以及密码加密等,使得开发者...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...
### 基于Spring的Acegi安全框架认证与授权的分析及扩展 #### 1. Acegi安全框架的概述 Acegi(后更名为Spring ...通过本文档的介绍,希望能帮助读者更好地理解和运用Acegi安全框架,以构建更加健壮和安全的应用程序。
Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring的企业级应用。它通过Spring的依赖注入(IoC)和面向切面编程(AOP)功能,提供了声明式的安全访问控制。Acegi能够实现精细的权限...
Acegi安全框架(后更名为Spring Security)作为Spring生态的一部分,专门为解决安全性问题而设计,通过引入控制反转(IoC)和面向切面编程(AOP)等关键技术,有效解决了这一难题。 #### Acegi安全框架概述 Acegi...
Acegi Security,现已被Spring ...结合"acegi-sample.war"和"实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf",开发者可以更好地理解和掌握Acegi Security的使用方法,从而提升Web应用的安全性。
文档的目的是确保用户能够成功地将AceGI安全框架集成到他们的应用程序中,利用CAS服务器进行单点登录(SSO)和身份验证,以提高系统的安全性。 0.2 文档范围: 此文档涵盖了从安装CAS服务器,配置AceGI安全策略,到...
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。通过精心 配置Acegi安全系统能够轻松地适用于复杂的安全需求。它既能应用于WEB应用也能应用于非WEB应用。在 ...
Acegi Security是一个已不再维护但曾经非常流行的Java安全框架,它为Spring框架提供了全面的安全管理功能。这个"安全框架acegi-1.0.7.rar"压缩包包含了用于开发Acegi Security应用程序的各种资源,让我们来深入了解...
在"Spring+Acegi+ehcache安全框架所用jar包"这个压缩包中,你可能会找到以下关键的库文件: 1. spring-context.jar:Spring的核心库,包含Bean管理和AOP支持。 2. spring-aop.jar:Spring的面向切面编程模块,用于...
为了解决这一问题,Acegi安全框架作为一种基于Spring的安全架构被提出并广泛应用。 #### Acegi安全框架概述 Acegi安全框架是一个基于Spring Framework的安全管理框架,能够与主流的Web容器无缝集成。它利用Spring...
然而对于一个完整的应用系统,完善的认证和授权机制是必不可少的,Acegi是一个基于Spring的安全框架,探讨了Spring框架集成Acegi的方法,即在Spring的IOC配置文件中定义所有的安全逻辑,改变了传统的通过编写代码的...
Acegi安全框架是专为Spring框架设计的安全解决方案,它通过深度集成Spring的特性,提供了一套全面、灵活的安全管理方案。不同于传统的安全框架,Acegi采用了面向切面编程(AOP)的方式来处理认证和授权问题,这使得...
Acegi Security是Spring社区早期开发的一个安全框架,用于增强J2EE应用程序的安全性。这个框架在Spring Security(之前称为Acegi Security)的后续版本中得到了发展和改进,成为了Spring生态中的核心组件。本文将...
通过本实战教程,读者将学习到如何设置Acegi安全框架,创建自定义认证和授权逻辑,以及如何调试和优化安全配置,以确保Spring应用的安全性和稳定性。尽管Acegi已被Spring Security所取代,但其核心理念和使用方法在...
Acegi 安全系统是一个专为基于 Spring 的应用设计的安全框架,它提供了全面的描述性安全保护。Acegi 使用 Servlet 过滤器来保护 Web 应用,通过身份认证和授权来确保系统的安全性。该框架利用了 Spring 框架的依赖...