Springsecurity3 之动态资源管理

Springsecurity3 之动态资源管理
Springsecurity 从最初的acegi 到现在的3.0版本功能越来越高级了,配置也简单了许多。但是一个有一点就是 角色,和资源始终都是静态的。这点很不合国情,我们总是喜欢临时给某某人某某权限,或者直到项目实施的时候又冒出来一个角色来。动态资源管理对于我的确很需要。它要满足一下几点需求:1、能够动态设定一个url 或者方法是可以访问的或者不受保护的以及要有什么角色才可以访问的;2、能够给某人动态分配角色而且立刻生效;3动态设定不需重启服务。
需要实现的功能点:
1、人员管理、角色管理、资源管理, 典型的rbac模型。
2、动态菜单。根据人员展现所有可用菜单
3、页面级权限设置。根据人员有无某权限来确定是否显示页面元素。
资源定义:在我的系统里资源分为3种,菜单、url、方法。菜单肯定要有一个url,但是菜单可以不受保护。url 和方法是受保护的对象。
默认sec中的资源与角色映射定义是,拥有所有角色才可以访问该资源,当无角色的时候,不加载该资源为保护资源。这点可能与我们平常习惯不一样。我的实现是资源对应的任何角色都可访问该资源,该资源无角色的时候,谁都不可访问。
实现策略:1、sec 默认的是从配置文件加载资源(资源和能够访问的角色),  修改 使其从数据库中加载。
2、 修改默认的rolevoter 使其符合我们的需求。
实现步骤  见 http://figure9duo9duo.appspot.com/article/18001/springsecurity3.1-%E5%8A%A8%E6%80%81%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86

你可能感兴趣的:(acegi,url,数据库)