spring security是否能解决我的问题?

wenxiang_tune 2009-09-28
对于spring来讲,变更业务已不再是技术难题!
jieyuan_cg 2009-09-28
bencmai 写道

zhanglei 你好!


 这段时间在忙找工作,今天才上来,看到你的消息,回复一下

 

 由于不是很清楚你们的系统架构,我也不好给你更具体的建议。

 

 强调一点,spring security 和spring结合是非常密切的,要想用好spring security ,你们的架构中至少要引入spring容器来管理所有需要管理权限的东西,比如数据层、服务层等,虽然按官方的声明是可以脱离spring容器独立使用spring security ,但那样实现起来相对比较耗费精力,并且需要自己去做部分权限判断。

 

按你所举的例子里,我不确定你们是否后台只用servlet来处理数据,请告诉我你们准确的架构。

 

spring security  的官方demo写的有点烂,甚至可以说是不值一看,尤其是它的基于Spring XML schema 的简化配置和硬编码的应用方式误导了很多想在产品化中应用它的人,严中掩盖了它本身强大的设计思想。spring security本身可以说只是一个半成品,而它的demo也是基于这个半成品将就着写出来的,当然不适合产品化的灵活应用。不过对付简单网站或入门学习还是够用的。从某中程度上来说demo只是提供了spring security  最原始的一种应用方式。

 

另一方面 spring security 是完全能应付产品化应用的:

 

适用架构 功能 权限模式
1 提供各种认证方式
2 B/S 基于过滤器链方式的 url 访问控制。基于ss提供的tag控制ui视图组件的 显/隐 RBAC
3 B/S、C/S 基于spring容器提供的AOP方式的切面实现          method 访问控制 RBAC
4 B/S、C/S 基于spring容器提供的AOP方式的切面实现          事后数据审查和过滤  ACL、RBAC
5 B/S、C/S 基于spring容器提供的AspectJ 方式的切面实现   对任意bean的字段控制 RBAC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其中 第4点 能实现你例子中所说的对各个单据授权,即对象(记录)级授权控制

对于你的问题,这篇文章可能比较适合你http://server.denksoft.com/wordpress/?page_id=5

( 最好用JPA方式实现,这样可以避免JDBC的一些通用性问题)

 

如果你要实现完全基于数据库的动态权限定义,安全对象资源定义、授权、角色定义、用户组、角色分层、记录级授权、字段级授权,基于分层组织架构权限等,并且使权限管理模块完全可插拔到不同的项目中,你必须完全抛弃demo的那种配置方式,并结合spring使用java代码编程式去配置。这就需要你对spring容器、面向切面编程(AOP和AspectJ)、RBAC模型、 ACL模型、都要有比较深入的理解。

 

还强调一点,spring security是我目前见到过的最强大的安全框架,几乎能实现目前企业应用中所有的权限管理需求并且可以完全和项目解耦。

 

但spring security入门相对其他框架难度要大很多,不是因为它本身就难,而是因为权限管理涉及的知识点太多。只要你琢磨透彻了,它也会给你其他框架无法比拟的好处。而且权限管理就像数据库一样重要而且基础的一块,基本上什么项目都需要。以后在任何项目中,只要修改数据库中的权限定义,就都能重用到几乎所有的项目了。

 

目前网上能找到的关于spring security 的中英文文章都不少,但大部分都比较老旧而且一般只涉及URL拦截和简单的方法拦截的垃圾文章,而对于ACL结合方法拦截或RBAC模式实现记录级授权还比较少有价值的文章,对于字段级授权实现就几乎没有。另一方面,对于spring security 和各种主流数据交换应用框架的无缝整合,如Flex(BlazeDS、LCDS),Ajax(dwr 、Extjs)等等的文章更是罕见。(可能是我没找到,开源框架很多东西得自己研究,呵呵)

 

我是spring security的忠实用户,从acegi到spring security2.0.4已经用了4年多了,在它的基础上做了很多实现和扩展,现在已经能实现到项目中spring security 完全不用一行xml配置,完全能基于任何数据库定义和管理所有权限和授权。并且支持字段级粒度授权,所有的这一切都只是数据库中的一些记录定义而已,这样就可以完全的动态定义和权限相关的一切东西了。呵呵

 

欢迎进一步交流,有兴趣的朋友请加入我的群中方便聊:9443086 J2EE项目组(拒接初哥^_^!!)

那个链接真是个好东西啊~

 

 

hengxing2009 2010-03-20
   
tss0823 2010-08-04
bencmai 写道

zhanglei 你好!


 这段时间在忙找工作,今天才上来,看到你的消息,回复一下

 

 由于不是很清楚你们的系统架构,我也不好给你更具体的建议。

 

 强调一点,spring security 和spring结合是非常密切的,要想用好spring security ,你们的架构中至少要引入spring容器来管理所有需要管理权限的东西,比如数据层、服务层等,虽然按官方的声明是可以脱离spring容器独立使用spring security ,但那样实现起来相对比较耗费精力,并且需要自己去做部分权限判断。

 

按你所举的例子里,我不确定你们是否后台只用servlet来处理数据,请告诉我你们准确的架构。

 

spring security  的官方demo写的有点烂,甚至可以说是不值一看,尤其是它的基于Spring XML schema 的简化配置和硬编码的应用方式误导了很多想在产品化中应用它的人,严中掩盖了它本身强大的设计思想。spring security本身可以说只是一个半成品,而它的demo也是基于这个半成品将就着写出来的,当然不适合产品化的灵活应用。不过对付简单网站或入门学习还是够用的。从某中程度上来说demo只是提供了spring security  最原始的一种应用方式。

 

另一方面 spring security 是完全能应付产品化应用的:

 

  适用架构 功能 权限模式
1   提供各种认证方式  
2 B/S 基于过滤器链方式的 url 访问控制。基于ss提供的tag控制ui视图组件的 显/隐 RBAC
3 B/S、C/S 基于spring容器提供的AOP方式的切面实现          method 访问控制 RBAC
4 B/S、C/S 基于spring容器提供的AOP方式的切面实现          事后数据审查和过滤  ACL、RBAC
5 B/S、C/S 基于spring容器提供的AspectJ 方式的切面实现   对任意bean的字段控制 RBAC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其中 第4点 能实现你例子中所说的对各个单据授权,即对象(记录)级授权控制

对于你的问题,这篇文章可能比较适合你http://server.denksoft.com/wordpress/?page_id=5

( 最好用JPA方式实现,这样可以避免JDBC的一些通用性问题)

 

如果你要实现完全基于数据库的动态权限定义,安全对象资源定义、授权、角色定义、用户组、角色分层、记录级授权、字段级授权,基于分层组织架构权限等,并且使权限管理模块完全可插拔到不同的项目中,你必须完全抛弃demo的那种配置方式,并结合spring使用java代码编程式去配置。这就需要你对spring容器、面向切面编程(AOP和AspectJ)、RBAC模型、 ACL模型、都要有比较深入的理解。

 

还强调一点,spring security是我目前见到过的最强大的安全框架,几乎能实现目前企业应用中所有的权限管理需求并且可以完全和项目解耦。

 

但spring security入门相对其他框架难度要大很多,不是因为它本身就难,而是因为权限管理涉及的知识点太多。只要你琢磨透彻了,它也会给你其他框架无法比拟的好处。而且权限管理就像数据库一样重要而且基础的一块,基本上什么项目都需要。以后在任何项目中,只要修改数据库中的权限定义,就都能重用到几乎所有的项目了。

 

目前网上能找到的关于spring security 的中英文文章都不少,但大部分都比较老旧而且一般只涉及URL拦截和简单的方法拦截的垃圾文章,而对于ACL结合方法拦截或RBAC模式实现记录级授权还比较少有价值的文章,对于字段级授权实现就几乎没有。另一方面,对于spring security 和各种主流数据交换应用框架的无缝整合,如Flex(BlazeDS、LCDS),Ajax(dwr 、Extjs)等等的文章更是罕见。(可能是我没找到,开源框架很多东西得自己研究,呵呵)

 

我是spring security的忠实用户,从acegi到spring security2.0.4已经用了4年多了,在它的基础上做了很多实现和扩展,现在已经能实现到项目中spring security 完全不用一行xml配置,完全能基于任何数据库定义和管理所有权限和授权。并且支持字段级粒度授权,所有的这一切都只是数据库中的一些记录定义而已,这样就可以完全的动态定义和权限相关的一切东西了。呵呵

 

欢迎进一步交流,有兴趣的朋友请加入我的群中方便聊:9443086 J2EE项目组(拒接初哥^_^!!)

我要是早看到你这么耐心和详细的解答就好le,首先谢谢你,我很荣幸的看到了,哈。。我现在被spring security 搞晕了。

hhww0101 2010-09-14
tss0823 写道
bencmai 写道

zhanglei 你好!


 这段时间在忙找工作,今天才上来,看到你的消息,回复一下

 

 由于不是很清楚你们的系统架构,我也不好给你更具体的建议。

 

 强调一点,spring security 和spring结合是非常密切的,要想用好spring security ,你们的架构中至少要引入spring容器来管理所有需要管理权限的东西,比如数据层、服务层等,虽然按官方的声明是可以脱离spring容器独立使用spring security ,但那样实现起来相对比较耗费精力,并且需要自己去做部分权限判断。

 

按你所举的例子里,我不确定你们是否后台只用servlet来处理数据,请告诉我你们准确的架构。

 

spring security  的官方demo写的有点烂,甚至可以说是不值一看,尤其是它的基于Spring XML schema 的简化配置和硬编码的应用方式误导了很多想在产品化中应用它的人,严中掩盖了它本身强大的设计思想。spring security本身可以说只是一个半成品,而它的demo也是基于这个半成品将就着写出来的,当然不适合产品化的灵活应用。不过对付简单网站或入门学习还是够用的。从某中程度上来说demo只是提供了spring security  最原始的一种应用方式。

 

另一方面 spring security 是完全能应付产品化应用的:

 

适用架构 功能 权限模式
1 提供各种认证方式
2 B/S 基于过滤器链方式的 url 访问控制。基于ss提供的tag控制ui视图组件的 显/隐 RBAC
3 B/S、C/S 基于spring容器提供的AOP方式的切面实现          method 访问控制 RBAC
4 B/S、C/S 基于spring容器提供的AOP方式的切面实现          事后数据审查和过滤  ACL、RBAC
5 B/S、C/S 基于spring容器提供的AspectJ 方式的切面实现   对任意bean的字段控制 RBAC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其中 第4点 能实现你例子中所说的对各个单据授权,即对象(记录)级授权控制

对于你的问题,这篇文章可能比较适合你http://server.denksoft.com/wordpress/?page_id=5

( 最好用JPA方式实现,这样可以避免JDBC的一些通用性问题)

 

如果你要实现完全基于数据库的动态权限定义,安全对象资源定义、授权、角色定义、用户组、角色分层、记录级授权、字段级授权,基于分层组织架构权限等,并且使权限管理模块完全可插拔到不同的项目中,你必须完全抛弃demo的那种配置方式,并结合spring使用java代码编程式去配置。这就需要你对spring容器、面向切面编程(AOP和AspectJ)、RBAC模型、 ACL模型、都要有比较深入的理解。

 

还强调一点,spring security是我目前见到过的最强大的安全框架,几乎能实现目前企业应用中所有的权限管理需求并且可以完全和项目解耦。

 

但spring security入门相对其他框架难度要大很多,不是因为它本身就难,而是因为权限管理涉及的知识点太多。只要你琢磨透彻了,它也会给你其他框架无法比拟的好处。而且权限管理就像数据库一样重要而且基础的一块,基本上什么项目都需要。以后在任何项目中,只要修改数据库中的权限定义,就都能重用到几乎所有的项目了。

 

目前网上能找到的关于spring security 的中英文文章都不少,但大部分都比较老旧而且一般只涉及URL拦截和简单的方法拦截的垃圾文章,而对于ACL结合方法拦截或RBAC模式实现记录级授权还比较少有价值的文章,对于字段级授权实现就几乎没有。另一方面,对于spring security 和各种主流数据交换应用框架的无缝整合,如Flex(BlazeDS、LCDS),Ajax(dwr 、Extjs)等等的文章更是罕见。(可能是我没找到,开源框架很多东西得自己研究,呵呵)

 

我是spring security的忠实用户,从acegi到spring security2.0.4已经用了4年多了,在它的基础上做了很多实现和扩展,现在已经能实现到项目中spring security 完全不用一行xml配置,完全能基于任何数据库定义和管理所有权限和授权。并且支持字段级粒度授权,所有的这一切都只是数据库中的一些记录定义而已,这样就可以完全的动态定义和权限相关的一切东西了。呵呵

 

欢迎进一步交流,有兴趣的朋友请加入我的群中方便聊:9443086 J2EE项目组(拒接初哥^_^!!)

我要是早看到你这么耐心和详细的解答就好le,首先谢谢你,我很荣幸的看到了,哈。。我现在被spring security 搞晕了。

 

 

目前我也在做个项目需要权限控制,也在发愁呢,上述链接中说的和micrite项目中应该的相似,就连数据库表名都一样的,你可以去下载micrite运行一下试试。机遇Struts2+Spring+Hibernate+ExtJs的,反正我运行出来,但是数据查询出不来,报错了好像,但是又没日志显示。纳闷中。micrite是开源的权限角色管理系统。

地址:http://code.google.com/p/micrite/downloads/list

 

目前的我做的项目都是基于注解的,而micrite是基于xml配置文件的。权限那块可以借鉴一下。

sjavaboy 2010-10-28
应该可以的吧, 没用过spring security  不过你的角色和模块得关联起来, 你只要给角色授予某种权限(CRUD), 然后你根据权限, 动态生成可以有权限的导航菜单。
oolala 2010-11-28
metadmin
讲得挺好的,可以开个帖子讲一下啦。
confident_f 2011-12-07
链接打不开
hhww0101 写道
tss0823 写道
bencmai 写道

zhanglei 你好!


 这段时间在忙找工作,今天才上来,看到你的消息,回复一下

 

 由于不是很清楚你们的系统架构,我也不好给你更具体的建议。

 

 强调一点,spring security 和spring结合是非常密切的,要想用好spring security ,你们的架构中至少要引入spring容器来管理所有需要管理权限的东西,比如数据层、服务层等,虽然按官方的声明是可以脱离spring容器独立使用spring security ,但那样实现起来相对比较耗费精力,并且需要自己去做部分权限判断。

 

按你所举的例子里,我不确定你们是否后台只用servlet来处理数据,请告诉我你们准确的架构。

 

spring security  的官方demo写的有点烂,甚至可以说是不值一看,尤其是它的基于Spring XML schema 的简化配置和硬编码的应用方式误导了很多想在产品化中应用它的人,严中掩盖了它本身强大的设计思想。spring security本身可以说只是一个半成品,而它的demo也是基于这个半成品将就着写出来的,当然不适合产品化的灵活应用。不过对付简单网站或入门学习还是够用的。从某中程度上来说demo只是提供了spring security  最原始的一种应用方式。

 

另一方面 spring security 是完全能应付产品化应用的:

 

  适用架构 功能 权限模式
1   提供各种认证方式  
2 B/S 基于过滤器链方式的 url 访问控制。基于ss提供的tag控制ui视图组件的 显/隐 RBAC
3 B/S、C/S 基于spring容器提供的AOP方式的切面实现          method 访问控制 RBAC
4 B/S、C/S 基于spring容器提供的AOP方式的切面实现          事后数据审查和过滤  ACL、RBAC
5 B/S、C/S 基于spring容器提供的AspectJ 方式的切面实现   对任意bean的字段控制 RBAC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其中 第4点 能实现你例子中所说的对各个单据授权,即对象(记录)级授权控制

对于你的问题,这篇文章可能比较适合你http://server.denksoft.com/wordpress/?page_id=5

( 最好用JPA方式实现,这样可以避免JDBC的一些通用性问题)

 

如果你要实现完全基于数据库的动态权限定义,安全对象资源定义、授权、角色定义、用户组、角色分层、记录级授权、字段级授权,基于分层组织架构权限等,并且使权限管理模块完全可插拔到不同的项目中,你必须完全抛弃demo的那种配置方式,并结合spring使用java代码编程式去配置。这就需要你对spring容器、面向切面编程(AOP和AspectJ)、RBAC模型、 ACL模型、都要有比较深入的理解。

 

还强调一点,spring security是我目前见到过的最强大的安全框架,几乎能实现目前企业应用中所有的权限管理需求并且可以完全和项目解耦。

 

但spring security入门相对其他框架难度要大很多,不是因为它本身就难,而是因为权限管理涉及的知识点太多。只要你琢磨透彻了,它也会给你其他框架无法比拟的好处。而且权限管理就像数据库一样重要而且基础的一块,基本上什么项目都需要。以后在任何项目中,只要修改数据库中的权限定义,就都能重用到几乎所有的项目了。

 

目前网上能找到的关于spring security 的中英文文章都不少,但大部分都比较老旧而且一般只涉及URL拦截和简单的方法拦截的垃圾文章,而对于ACL结合方法拦截或RBAC模式实现记录级授权还比较少有价值的文章,对于字段级授权实现就几乎没有。另一方面,对于spring security 和各种主流数据交换应用框架的无缝整合,如Flex(BlazeDS、LCDS),Ajax(dwr 、Extjs)等等的文章更是罕见。(可能是我没找到,开源框架很多东西得自己研究,呵呵)

 

我是spring security的忠实用户,从acegi到spring security2.0.4已经用了4年多了,在它的基础上做了很多实现和扩展,现在已经能实现到项目中spring security 完全不用一行xml配置,完全能基于任何数据库定义和管理所有权限和授权。并且支持字段级粒度授权,所有的这一切都只是数据库中的一些记录定义而已,这样就可以完全的动态定义和权限相关的一切东西了。呵呵

 

欢迎进一步交流,有兴趣的朋友请加入我的群中方便聊:9443086 J2EE项目组(拒接初哥^_^!!)

我要是早看到你这么耐心和详细的解答就好le,首先谢谢你,我很荣幸的看到了,哈。。我现在被spring security 搞晕了。

 

 

目前我也在做个项目需要权限控制,也在发愁呢,上述链接中说的和micrite项目中应该的相似,就连数据库表名都一样的,你可以去下载micrite运行一下试试。机遇Struts2+Spring+Hibernate+ExtJs的,反正我运行出来,但是数据查询出不来,报错了好像,但是又没日志显示。纳闷中。micrite是开源的权限角色管理系统。

地址:http://code.google.com/p/micrite/downloads/list

 

目前的我做的项目都是基于注解的,而micrite是基于xml配置文件的。权限那块可以借鉴一下。

 

Global site tag (gtag.js) - Google Analytics