浏览 11764 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-04
1) 入口级安全 具体体现上界面上每个操作菜单,操作元素是否可操作,在服务端则对URL程序资源和业务服务类方法的限制。 2) 数据域安全 数据域控制包括两个部分,分别是: 2.1 行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位; 2.2 字段级控制 即用户可以访问数据行的哪些字段; 3)系统级安全 如访问IP段的限制,登录时间段的限制,登录次数的限制等。 Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。 严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。 所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-04
stamen 写道 Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。 严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。 所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。 1. 实例级权限控制 Acegi 通过 ACL 实现, 虽然使用上不太方便, 但它是标准的方案 2. 属性级权限控制还没听有通用的方案 3. 界面上通过 auth tag 实现控制, 一般的需求足够用了, 太特殊的也不是 security framework 管辖的范畴 4. 限登录 ip, 时间, 次数本身也不是难点, 新的版本应该会提供 |
|
返回顶楼 | |
发表时间: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一点都不难 |
|
返回顶楼 | |
发表时间:2006-11-05
谢谢指正,继续学习。
|
|
返回顶楼 | |
发表时间: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没有授权"); } } } 。。。。 ) |
|
返回顶楼 | |
发表时间:2006-11-06
acegi中的acl不就是为了解决domain object的授权问题而提出的吗,我看了下,应该可以解决行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位,当然这里面不包括具体逻辑的东西,如与创建者相关的信息等。
|
|
返回顶楼 | |