论坛首页 Java企业应用论坛

请把acegi替换成Spring Security(内附视频)

浏览 7155 次
精华帖 (1) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-24  
fansofjava 写道
JackAndroid 写道
fansofjava 写道
former 写道
fansofjava 写道
spring security2.0 其实只能说一般,有些地方甚至可以说比较丑陋,不过不久前3.0出来了,仔细看了一下,是要比2.0好一些,现在一定要用的话,建议直接3.0。

哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……

主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。

因为不能用泛型就丑陋了??那你JDK 5.0之前是怎么活过来的?

不要单从概念上来分析好不好,用过就知道,2.0有验证的时候是通过','相隔的方式传递字符串的,返回的时候用的是Object[],看起来很是不爽。

这点的确有不爽的地方:
1.很多返回值用对象或对象数组,再处理的时候需要用到强类型转换。这么一说,acegi里面的权限对象也是这么玩的。不知道spring security是否可以解决。
2.曾经想将FilterInvocationDefinitionSource做远程调用(Hessian),由于其参数为Ojbect,无法实现,最后只能去重载FilterSecurityInterceptor中的invoke方法来实现了。
不知道这些地方spring security是否做了增强,保证了这些安全验证的方法有比较好的参数实现。
0 请登录后投票
   发表时间:2010-03-24   最后修改:2010-03-24
former 写道

这点的确有不爽的地方:
1.很多返回值用对象或对象数组,再处理的时候需要用到强类型转换。这么一说,acegi里面的权限对象也是这么玩的。不知道spring security是否可以解决。
2.曾经想将FilterInvocationDefinitionSource做远程调用(Hessian),由于其参数为Ojbect,无法实现,最后只能去重载FilterSecurityInterceptor中的invoke方法来实现了。
不知道这些地方spring security是否做了增强,保证了这些安全验证的方法有比较好的参数实现。


这个问题在2.0的时候没有解决,但在3.0上已经得到解决了,返回的时候采用Collection,所以类型就很好解决了。基本上Object[]都替换成了Collection,如返回ConfigAttributeDefinition,算是个比较垃圾的作法了,在3.0改成了Collection<ConfigAttribute>,总之,到3.0上,基本上解决了原来一些实现比较丑陋的地方。
0 请登录后投票
   发表时间:2010-03-24  
在单位没法看视频。

看这视频之前需要会acegi么?
0 请登录后投票
   发表时间:2010-03-24  
Spring security 3里使用了很多Collection替换了原来的数组,null检验和操作都方便了很多。

但是要说3比2增强的最大地方,还是SpEl表达式,它为权限配置提供了更灵活的配置方案。至少把ACL那部分简化了很多(说到acl,又该有很多人来说acl垃圾了,这个暂且不提)

3里还额外提供了session management,把同步会话控制,会话失效检测都放到了一起,但是没感觉这部分改好了,和之前一样不好用。

3还提供了login success的handler,可是不支持链装,只能继承原来的handler,替代,所以还是不轻便。

目前不打算换到3,原因是3重新分包,把所有类的包名都改了,又要依赖spring3,现在就等着列级acl这个功能实现以后,再转换到3上去撒。
0 请登录后投票
   发表时间:2010-03-24  
按照楼主的逻辑,我曾经让无数的精灵死去,真是罪过啊,罪过!!
0 请登录后投票
   发表时间:2010-03-24  
xyz20003 写道
Spring security 3里使用了很多Collection替换了原来的数组,null检验和操作都方便了很多。

但是要说3比2增强的最大地方,还是SpEl表达式,它为权限配置提供了更灵活的配置方案。至少把ACL那部分简化了很多(说到acl,又该有很多人来说acl垃圾了,这个暂且不提)

3里还额外提供了session management,把同步会话控制,会话失效检测都放到了一起,但是没感觉这部分改好了,和之前一样不好用。

3还提供了login success的handler,可是不支持链装,只能继承原来的handler,替代,所以还是不轻便。

目前不打算换到3,原因是3重新分包,把所有类的包名都改了,又要依赖spring3,现在就等着列级acl这个功能实现以后,再转换到3上去撒。

session management不知道是个什么东东,是检测应用中多人重复认证的session问题的吗?这个要去看一下。
换包也是个头疼的时,之前由于acegi的功能不是很完善,在其上做了很多的扩展,现在升级的话,这块的代码也得改,麻烦。
0 请登录后投票
   发表时间:2010-05-12  
向高手学习了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics