2024年4月15日发(作者:)

Spring Security3的使用方法有4种:

一种是全部利用配置文件,将用户、权限、资源(url)硬编码在xml文件中。

二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置。

三种是细分角色和权限,并将用户、角色、权限和资源均采用数据库存储,并且自定义过滤

器,代替原有的FilterSecurityInterceptor过滤器,并分别实现AccessDecisionManager、

InvocationSecurityMetadataSourceService和UserDetailsService,并在配置文件中进行相应配

置。

四是修改spring security的源代码,主要是修改InvocationSecurityMetadataSourceService

和UserDetailsService两个类。前者是将配置文件或数据库中存储的资源(url)提取出来加工成

为url和权限列表的Map供Security使用,后者提取用户名和权限组成一个完整的

(UserDetails)User对象,该对象可以提供用户的详细信息供AuthentationManager进行认证与

授权使用。该方法理论上可行,但是比较暴力,不推荐使用。

本文有两个例子,我在简单例子章节实现了第一种方法。在复杂例子章节实现了第二种

和第三种方法组合使用的例子。简单例子通俗易懂,不再赘述。复杂例子及其使用和扩展,

我将穿插详细的配置注释和讲解,包括整个程序的执行过程。

简单例子

创建web工程如下图所示:

配置如下图所示:

单击Finish即可。

把从spring网站下载的E解压,并将其中的

解压,把WEB-INFlib中的jar包拷贝到如

下图所示: