1
1楼 stamen 2006-11-04
就我目前对Acegi的了解,Acegi安全框架主要解决的安全问题是访问入口级别的安全问题,安全问题我将其分为三类:
1) 入口级安全 具体体现上界面上每个操作菜单,操作元素是否可操作,在服务端则对URL程序资源和业务服务类方法的限制。 2) 数据域安全 数据域控制包括两个部分,分别是: 2.1 行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位; 2.2 字段级控制 即用户可以访问数据行的哪些字段; 3)系统级安全 如访问IP段的限制,登录时间段的限制,登录次数的限制等。 Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。 严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。 所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。 2楼 Feiing 2006-11-04 stamen 写道 Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。 严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。 所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。 1. 实例级权限控制 Acegi 通过 ACL 实现, 虽然使用上不太方便, 但它是标准的方案 2. 属性级权限控制还没听有通用的方案 3. 界面上通过 auth tag 实现控制, 一般的需求足够用了, 太特殊的也不是 security framework 管辖的范畴 4. 限登录 ip, 时间, 次数本身也不是难点, 新的版本应该会提供 3楼 quaff 2006-11-05 Feiing 写道 stamen 写道 Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。 严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。 所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。 1. 实例级权限控制 Acegi 通过 ACL 实现, 虽然使用上不太方便, 但它是标准的方案 2. 属性级权限控制还没听有通用的方案 3. 界面上通过 auth tag 实现控制, 一般的需求足够用了, 太特殊的也不是 security framework 管辖的范畴 4. 限登录 ip, 时间, 次数本身也不是难点, 新的版本应该会提供 4.可以限制同时登录次数,详情参考springside 仿照这个写一个登录ip和时间限制的plugin一点都不难 4楼 stamen 2006-11-05
谢谢指正,继续学习。
5楼 realzn 2006-11-06
控制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没有授权"); } } } 。。。。 ) 6楼 kimfly 2006-11-06
acegi中的acl不就是为了解决domain object的授权问题而提出的吗,我看了下,应该可以解决行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位,当然这里面不包括具体逻辑的东西,如与创建者相关的信息等。
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源
| |||||