前言

南朝《述异记》中记载,晋王质上山砍柴,见二童子下棋,未看完,斧柄已烂,下山回村,闻同代人都去世了,自已还未变老。
    因此发出“山中方一日,世上几千年” 的慨叹。原文寥寥几笔,读来却发人深省。

另有宋朝周敦颐在《暮春即事》中也有诗云:双双瓦雀行书案,点点杨花入砚池。闲坐小窗读周易,不知春去几多时。

上述古文或古诗中对于时间的论述最符合我现在的感受。已经整整十五日,对于Spring Serurity3的研究终于可以告一个段落了。

感觉这过往的十五日仿佛一瞬间而过,我沉浸在此中,一种强烈的求知愿望使我乐此不疲。到今天为止,终于将一种版本调通,可以正常使用了。
    再回头看时,楼下的小公园里已经开放了一丛丛黄色的花朵,整齐的柳树丛林里,已被春风剪出嫩绿的风景。
    再回头看自己其间的经历,有几多所得做为铺垫,所有的痛苦和疲惫已经烟消云散了。
    欣喜之余整理一下,一来梳理一下自己的认知,进一步深入的理解;二来可以记录下来作为参考。

使用Spring Security3的四种方法概述

那么在Spring Security3的使用中,有4种方法:

一种是全部利用配置文件,将用户、权限、资源(url)硬编码在xml文件中,已经实现过,并经过验证;

二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置,目前这种方式已经实现,并经过验证。

三种是细分角色和权限,并将用户、角色、权限和资源均采用数据库存储,并且自定义过滤器,代替原有的FilterSecurityInterceptor过滤器,
    并分别实现AccessDecisionManager、InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中进行相应配置。
    目前这种方式已经实现,并经过验证。

四是修改spring security的源代码,主要是修改InvocationSecurityMetadataSourceService和UserDetailsService两个类。
    前者是将配置文件或数据库中存储的资源(url)提取出来加工成为url和权限列表的Map供Security使用,后者提取用户名和权限组成一个完整的(UserDetails)User对象,该对象可以提供用户的详细信息供AuthentationManager进行认证与授权使用。
    该方法理论上可行,但是比较暴力,也没有时间实现,未验证,以后再研究。

说明一下,我目前调通的环境为: java1.6 + struts2.1.6 + spring3.0.1 + hibernate3.3.1 + spring security3.0.2 + oracle9i + weblogic10.3,
    顺便提一下,目前(2011-4-2)serutity的最新版本为3.1,比较稳定的版本为3.0.5和2.0.6。

当然在进行spring security3的下面4种方法介绍之前,先假定SSH2的环境已经配置完毕,进入正常开发的过程,并且已经导入
    spring security3.0.2的5个jar包,分别为:
    spring-security-acl-3.0.2.RELEASE.jar
    spring-security-config-3.0.2.RELEASE.jar
    spring-security-core-3.0.2.RELEASE.jar
    spring-security-taglibs-3.0.2.RELEASE.jar
    spring-security-web-3.0.2.RELEASE.jar
    当然还有其他相关的jar包,在此不再赘述。

详见:《春天的故事-Spring Security3十五日研究》或则下载HTML版

最新文章

  1. CSS透明属性详解代码
  2. 数据字符集mysql主从数据库,分库分表等笔记
  3. QTableView的表格项中加入图标的方法(重载View::mouseMoveEvent,并使用View::setIconSize函数设置图标的大小)
  4. Xamainr 地图之webview初探
  5. 【XSY3048 】Polynominal 数学
  6. jquery全国省市区三级联动插件distpicker
  7. js闭包 选择器 面向对象 事件 操作页面
  8. Linux命令(四)删除文件 rm
  9. 【推导】The 16th UESTC Programming Contest Preliminary L - Foxtrot
  10. 51nod 1073 约瑟夫环
  11. ActiveMQ-Network of brokers集群模式
  12. 页面优化——减少HTTP请求数
  13. oracle 11g怎样配置才能连接远程数据库
  14. 第五章:Reminders实验:第一部分[Learn Android Studio 汉化教程]
  15. 代码混淆 iOS
  16. 剑指offer:从头到尾打印链表
  17. TCP ------ keep-alive - 判断TCP链路的连接情况
  18. 这篇文章主要为大家详细介绍了jQuery密码强度验证控件使用详解的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  19. BZOJ1055[HAOI2008]玩具取名 【区间dp + 记忆化搜索】
  20. kamailio/opensips snmp/cacti/zabbix监控

热门文章

  1. 20145221 《Java程序设计》第八周学习总结
  2. SDN原理 OpenFlow协议 -4
  3. 科幻小说《霜与火》 by 雷·布雷德伯里
  4. 伪多项式时间 Pseudo-polynomial time
  5. Vue.js 数据绑定语法详解
  6. python学习笔记(locust性能测试模块)
  7. .Net Core中使用UEditor
  8. 深入理解javascript之typeof和instanceof
  9. IOS-static cell 与 dynamic cell 混合使用
  10. IOS-网络(文件上传)