(在百度文库中看到的,对我有帮助,引用过来,共享。)
Spring Security3的使用方法有4种:
一种是全部利用配置文件,将用户、权限、资源(url)硬编码在xml文件中。
二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置。
三种是细分角色和权限,并将用户、角色、权限和资源均采用数据库存储,并且自定义过滤器,代替原有的FilterSecurityInterceptor过滤器,并分别实现AccessDecisionManager、 InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中进行相应配置。
四是修改spring security的源代码,主要是修改InvocationSecurityMetadataSourceService和UserDetailsService两个类。前者是将配置文件或数据库中存储的资源(url)提取出来加工成为url和权限列表的Map供Security使用,后者提取用户名和权限组成一个完整的 (UserDetails)User对象,该对象可以提供用户的详细信息供AuthentationManager进行认证与授权使用。该方法理论上可行,但是比较暴力,不推荐使用。 本文有两个例子,我在简单例子章节实现了第一种方法。在复杂例子章节实现了第二种和第三种方法组合使用的例子。简单例子通俗易懂,不再赘述。复杂例子及其使用和扩展,我将穿插详细的配置注释和讲解,包括整个程序的执行过程。
具体参见: