- 浏览: 292799 次
- 性别:
- 来自: 唐山
最新评论
-
小灯笼:
JBPM5.4实战流程引擎开发网盘地址:https://pan ...
跟我学工作流——jBPM4视频教程(免费) -
Kai_Ge:
学会做人 写道临远大哥,谢谢你的贡献大名鼎鼎的临远!!膜拜中。 ...
Spring Security-3.0.1中文官方文档(翻译版) -
漂泊一剑客:
博主,你自己电脑上有下载,这些信息吗,能否分享一下给我
跟我学工作流——jBPM4视频教程(免费) -
Rookie_Li:
您好,您的教程很有用,请问例子的源码在哪下载?
spring security权限管理手册升级至spring security-3.1.3 -
nullFFF:
马教授 写道现在还用4有点过时了,最新的都已经是5.4了,目前 ...
跟我学工作流——jBPM4视频教程(免费)
在对web项目进行权限管理时,采用的方法无非是写一大堆JSP或者干脆一个Filter搞定。写完简单的权限功能后,又开始考虑如何自动记忆上次用户信息,限制每台机器只能有一个用户登录,把用户密码进行加密。接着更上一层楼,尝试实现单点登录,使用HTTPS保护传输数据,防御会话伪造攻击等等。
于是好几年前出现了名叫acegi的东西,它建立在spring的基础上,提供了可以丰盛的权限功能集合,同时也以极为变态的复杂配置给了我们这些初试权限的人闷头一棍。甚至网上已经有人流传“every time you use acegi, a fairy die”——每当有人使用acegi时,就会有一个精灵死去。
正因为如此,acegi在加入spring阵营时,不但改头换面改名成为Spring Security,而且在配置方面进行了极大的简化,形象的来说就是:“现在只需要20行的配置文件就可以完成之前几百行才能实现的功能”。
遗憾的是,现在依然可以看到还有人在使用acegi,甚至还有人在学习acegi,这种情况无疑让我们感到痛心疾首。
为了世界上不会再有精灵无谓牺牲,也为了大家的身心健康,我在此大声疾呼:“请把acegi替换成Spring Security。”尤其对那些希望学习acegi的同志,请直接学习Spring Security。
下面是《请把acegi替换成Spring Security》的附带视频,希望大家了解Spring Security的简洁。
http://code.google.com/p/family168/downloads/detail?name=springsecurity.zip
session management不知道是个什么东东,是检测应用中多人重复认证的session问题的吗?这个要去看一下。
换包也是个头疼的时,之前由于acegi的功能不是很完善,在其上做了很多的扩展,现在升级的话,这块的代码也得改,麻烦。
这点的确有不爽的地方:
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上,基本上解决了原来一些实现比较丑陋的地方。
哪里比较丑陋(⊙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是否做了增强,保证了这些安全验证的方法有比较好的参数实现。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
因为不能用泛型就丑陋了??那你JDK 5.0之前是怎么活过来的?
哈哈,楼上激进了。
的确之前2.0的时候好多使用数组,现在3.0用集合的话会方便很多,而且自定义过滤器也有所简化
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
因为不能用泛型就丑陋了??那你JDK 5.0之前是怎么活过来的?
不要单从概念上来分析好不好,用过就知道,2.0有验证的时候是通过','相隔的方式传递字符串的,返回的时候用的是Object[],看起来很是不爽。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
因为不能用泛型就丑陋了??那你JDK 5.0之前是怎么活过来的?
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
于是好几年前出现了名叫acegi的东西,它建立在spring的基础上,提供了可以丰盛的权限功能集合,同时也以极为变态的复杂配置给了我们这些初试权限的人闷头一棍。甚至网上已经有人流传“every time you use acegi, a fairy die”——每当有人使用acegi时,就会有一个精灵死去。
正因为如此,acegi在加入spring阵营时,不但改头换面改名成为Spring Security,而且在配置方面进行了极大的简化,形象的来说就是:“现在只需要20行的配置文件就可以完成之前几百行才能实现的功能”。
遗憾的是,现在依然可以看到还有人在使用acegi,甚至还有人在学习acegi,这种情况无疑让我们感到痛心疾首。
为了世界上不会再有精灵无谓牺牲,也为了大家的身心健康,我在此大声疾呼:“请把acegi替换成Spring Security。”尤其对那些希望学习acegi的同志,请直接学习Spring Security。
下面是《请把acegi替换成Spring Security》的附带视频,希望大家了解Spring Security的简洁。
http://code.google.com/p/family168/downloads/detail?name=springsecurity.zip
评论
18 楼
wuzhihui001
2011-09-27
网上找到了整理的文档 在这里把地址贴出,以方面后面看此博文的人
http://www.docin.com/p-104501208.html
《Spring Security安全权限管理手册》
http://www.docin.com/p-104501208.html
《Spring Security安全权限管理手册》
17 楼
wuzhihui001
2011-09-27
感谢楼主,正在学习中……
16 楼
熊笨笨
2010-05-12
向高手学习了
15 楼
former
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上去撒。
但是要说3比2增强的最大地方,还是SpEl表达式,它为权限配置提供了更灵活的配置方案。至少把ACL那部分简化了很多(说到acl,又该有很多人来说acl垃圾了,这个暂且不提)
3里还额外提供了session management,把同步会话控制,会话失效检测都放到了一起,但是没感觉这部分改好了,和之前一样不好用。
3还提供了login success的handler,可是不支持链装,只能继承原来的handler,替代,所以还是不轻便。
目前不打算换到3,原因是3重新分包,把所有类的包名都改了,又要依赖spring3,现在就等着列级acl这个功能实现以后,再转换到3上去撒。
session management不知道是个什么东东,是检测应用中多人重复认证的session问题的吗?这个要去看一下。
换包也是个头疼的时,之前由于acegi的功能不是很完善,在其上做了很多的扩展,现在升级的话,这块的代码也得改,麻烦。
14 楼
kjj
2010-03-24
按照楼主的逻辑,我曾经让无数的精灵死去,真是罪过啊,罪过!!
13 楼
xyz20003
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上去撒。
但是要说3比2增强的最大地方,还是SpEl表达式,它为权限配置提供了更灵活的配置方案。至少把ACL那部分简化了很多(说到acl,又该有很多人来说acl垃圾了,这个暂且不提)
3里还额外提供了session management,把同步会话控制,会话失效检测都放到了一起,但是没感觉这部分改好了,和之前一样不好用。
3还提供了login success的handler,可是不支持链装,只能继承原来的handler,替代,所以还是不轻便。
目前不打算换到3,原因是3重新分包,把所有类的包名都改了,又要依赖spring3,现在就等着列级acl这个功能实现以后,再转换到3上去撒。
12 楼
Angel_Night
2010-03-24
在单位没法看视频。
看这视频之前需要会acegi么?
看这视频之前需要会acegi么?
11 楼
fansofjava
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上,基本上解决了原来一些实现比较丑陋的地方。
10 楼
former
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是否做了增强,保证了这些安全验证的方法有比较好的参数实现。
9 楼
terrycong
2010-03-24
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的时候好多使用数组,现在3.0用集合的话会方便很多,而且自定义过滤器也有所简化
8 楼
fansofjava
2010-03-24
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[],看起来很是不爽。
7 楼
JackAndroid
2010-03-24
fansofjava 写道
former 写道
fansofjava 写道
spring security2.0 其实只能说一般,有些地方甚至可以说比较丑陋,不过不久前3.0出来了,仔细看了一下,是要比2.0好一些,现在一定要用的话,建议直接3.0。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
因为不能用泛型就丑陋了??那你JDK 5.0之前是怎么活过来的?
6 楼
fansofjava
2010-03-23
former 写道
fansofjava 写道
spring security2.0 其实只能说一般,有些地方甚至可以说比较丑陋,不过不久前3.0出来了,仔细看了一下,是要比2.0好一些,现在一定要用的话,建议直接3.0。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
主要是原来版本是基于JDK1.4,很多地方实现起来不太优雅,搞到3。0用泛型,感觉好多了,自己的感受是写那个验证的自定义过滤器。
5 楼
former
2010-03-23
fansofjava 写道
spring security2.0 其实只能说一般,有些地方甚至可以说比较丑陋,不过不久前3.0出来了,仔细看了一下,是要比2.0好一些,现在一定要用的话,建议直接3.0。
哪里比较丑陋(⊙o⊙)?
正在考虑是否要做acegi到spring security的迁移呢……
4 楼
fansofjava
2010-03-23
spring security2.0 其实只能说一般,有些地方甚至可以说比较丑陋,不过不久前3.0出来了,仔细看了一下,是要比2.0好一些,现在一定要用的话,建议直接3.0。
3 楼
bdifn
2010-03-23
多点了几次又好了.不好意思!
2 楼
bdifn
2010-03-23
链接无效啊?!
字数补足
字数补足
1 楼
former
2010-03-22
acegi一直在用,spring security虽然自己没用,但是搞cas的时候看到它在玩,感觉差不多,也是一堆filter+beans,这玩意儿原理都是一样的,也许加入了些技巧和扩展的tag和其他。
个人觉得初学者看哪个都差不多,原理懂了,也就一通百通了。
另外,如果真的再企业应用,例子里的那些配置还是不足,还是要自己定制一些beans+xml。
个人觉得初学者看哪个都差不多,原理懂了,也就一通百通了。
另外,如果真的再企业应用,例子里的那些配置还是不足,还是要自己定制一些beans+xml。
发表评论
-
spring security权限管理手册升级至spring security-3.1.3
2012-12-08 01:01 12296费了半天劲,终于把原来基于spring security 2. ... -
Spring Security-3.0.1中文官方文档(翻译版)
2010-01-19 09:36 10644这次发布的Spring Security-3.0.1是一个bu ... -
敬献Spring Security-3.x官方文档中文版
2009-12-29 11:43 10878Spring Security-3.x新近发布,整体的项 ... -
【分享】《基于Spring Security的ACL实现与扩展》内附ppt下载
2009-09-21 09:43 3450上次朋友间技术交流整理的ppt文档,因为之前一直在整理Spri ... -
Spring Security 安全权限管理手册(0.1.0更新)
2009-08-05 10:26 5034随着内容的堆叠,文档结构开始渐渐混乱了,到0.1.0为止关于认 ... -
Spring Security 安全权限管理手册(0.0.9更新)
2009-07-27 09:27 3278这次更新中包含了一个在用户输入密码错误三次后锁定账户的示 ... -
Spring Security 安全权限管理手册(0.0.8更新)
2009-07-20 09:58 1890Spring Security-2.0.5发布,这个bug ... -
Spring Security 安全权限管理手册(0.0.7更新)
2009-07-13 00:38 3196这一次迭代,对章节的命名进行了这里,目标是尽快覆盖Spring ... -
Spring Security 安全权限管理手册(0.0.6更新)
2009-07-10 01:54 1669这一次,我们添加了taglib标签库的时候,以及如何使用多种方 ... -
Spring Security手册更新cas, basic, acl
2009-06-29 18:13 2669这次更新的都是重头戏,CAS和ACL。其中ACL只是简述了Sp ... -
Spring Security手册更新——添加“管理会话”和对namespace,database
2009-06-22 10:04 1942新增的部分有,第八章“管理会话”,附录D,E分别整 ... -
图解Spring Security默认使用的过滤器
2009-06-15 10:38 3860第 9 章 图解过滤器 图 9.1. au ... -
Spring Security-2.0导航-基础篇,又添两章
2009-06-10 10:31 1916目前我们在基础篇中已经编写了六章,基本上可 ... -
Spring Security-2.0入门教程(基础篇)
2009-06-04 17:48 4775欢迎阅读咱们写的Spring Security教程,咱们既不想 ... -
springsecurity-2.x官方文档中文翻译初步整理完成,附上几个例子
2008-08-17 11:12 7891预览地址:http://family168.com/tutor ... -
(翻译)Spring Security-2.0.x参考文档“领域对象安全”
2008-08-13 00:18 2199领域对象安全 24.1. 概述 请注意:在2.0.0之前,S ... -
(翻译)Spring Security-2.0.x参考文档“安全对象实现”
2008-08-12 09:50 2027安全对象实现 23.1. AOP联盟 (MethodInvoc ... -
(翻译)Spring Security-2.0.x参考文档“通用授权概念”
2008-08-11 18:22 2820通用授权概念 22.1. 授权 在认证部分简略提过了,所有的 ... -
(翻译)Spring Security-2.0.x参考文档“安全数据库表结构”
2008-08-10 09:52 2035安全数据库表结构 可以为框架采用不同的数据库结构,这个附录为 ... -
(翻译)Spring Security-2.0.x参考文档“容器适配器认证”
2008-08-09 10:08 1932容器适配器认证 21.1. 概述 非常早期版本的Spring ...
相关推荐
- **历史**: 本章节简要回顾了 Spring Security 的发展历程,包括其前身 Acegi 安全框架的历史背景。 - **版本编号**: 明确了 Spring Security 版本的命名规则,例如 `3.2.0.M2` 中的 `.M2` 表示这是一个里程碑版本...
此外,Spring Security的插件式架构使得添加新的安全功能或替换现有功能变得非常容易。例如,可以添加OAuth2支持以实现第三方登录功能。 **6. 文件名列表解析** 在压缩包`spring-security-2.0.5`中,包含的是Spring...
标题和描述均提及了“Spring安全系统:Acegi Security”,这是一种专为Spring Framework设计的安全解决方案,旨在提供强大的认证和授权功能。Acegi Security,后更名为Spring Security,是Spring生态系统中的重要...
Spring Security是Spring框架的一个子项目,原名为Acegi Security,旨在提供全面的安全管理解决方案,包括用户认证、权限控制、会话管理等。它通过AOP(面向切面编程)和过滤器链技术,实现了对Web应用的细粒度安全...
- **背景介绍**:Spring Security起源于一个名为Acegi的项目,并在2.0版本时正式成为Spring框架的一部分。其前身Acegi在权限管理方面已经享有盛誉,因此Spring Security在发布之初便受到了极大的关注。 - **优势分析...
在2009年,Acegi被Spring Security所吸收,成为其前身,因此理解Acegi有助于我们深入理解Spring Security的安全机制。以下是对Acegi的详细介绍和实战应用实例。 一、Acegi的基本概念 1. **认证(Authentication)**...
Spring Security包含了一系列共享组件,这些组件被设计成可以在不同的环境中复用,以实现一致的安全策略执行。这些组件包括但不限于认证管理器、授权决策引擎等。 ##### 2.3 认证 认证是Spring Security中的关键...
3. **Spring Security(原名Acegi Security)**:这是一个强大的安全框架,提供认证、授权等功能。在这个项目中,Spring Security负责用户的身份验证和权限控制。它可以根据用户的角色分配不同的访问权限,实现对...
Acegi安全框架是专为Spring框架设计的安全解决方案,它通过深度集成Spring的特性,提供了一套全面、灵活的安全管理方案。不同于传统的安全框架,Acegi采用了面向切面编程(AOP)的方式来处理认证和授权问题,这使得...
它起源于2003年的Acegi Security,现在是Spring生态系统的组成部分,最新的版本是3.x。Spring Security 提供了一整套安全服务,包括用户验证、权限仲裁、会话管理等,适用于Web安全和方法安全。 **验证...
Spring Security(曾用名Acegi Security System for Spring)为基于Spring框架构建的企业级应用提供强大而灵活的安全解决方案。该系统不仅支持认证与授权,还提供了诸如会话管理、加密等多种安全功能。 ##### 1.2 ...
Spring Security是一个强大的开源安全框架,专门用于保护Web应用程序。它主要关注两个核心功能:认证和授权。认证涉及验证用户的身份,而授权则是决定已认证的用户可以访问哪些资源。 认证在Spring Security中通过...
2. **AspectJ Join Point**:使用AspectJ来管理Domain Object实例的安全,特别适合那些不在Spring Bean容器管理范围内的对象。通过Acegi,可以对标准构造函数(如`new Person()`)进行安全控制。 3. **...
**Acegi Security** 是一个为Spring框架设计的安全管理工具,它提供了丰富的安全服务,包括认证(Authentication)、授权(Authorization)以及会话管理(Session Management)等功能。在本章节中,我们将深入探讨Acegi的...
**Acegi Security**,作为Spring Security的前身,是一个深度融入Spring Framework的安全框架,它为开发者提供了一套全面的安全解决方案,尤其在Web应用程序中展现出强大的灵活性与兼容性。Acegi通过Spring特有的...
此外,通过集成Acegi(现为Spring Security)安全框架,可以提供用户认证和授权,增强系统安全性。 SSH的集成使用,让开发者能够专注于业务逻辑,而不必过于关心底层技术细节。它不仅提高了开发效率,还提升了系统...