总结Spring Security的使用方法有如下几种:
一种是全部利用配置文件,将用户、权限、资源(url)硬编码在xml文件中。
二种是用户和权限用数据库存储,而资源(url)和权限的对应关系硬编码在xml文件中。
三种是全部使用数据库存储,将用户、角色、权限、资源以及它们之间的对应关系都存储在数据库中,同时自定义过滤器,
代替原有的FilterSecurityInterceptor过滤器,并分别实现AccessDecisionManager、InvocationSecurityMetadataSourceService和
UserDetailsService,并在配置文件中进行相应配置。
对用户、角色、权限、资源的学习可阅读下面两篇文章:
简单的学习和使用过Spring Security 以后,你会发现,我们的案例将权限控制的用户、权限、资源(url)都硬编码在了xml配置文件中(第一种方法)。事实上,在实际项目中,为了安全体验和方便授权操作,我们不可能将这些内容都配置在文件中,常用的做法是使用数据库动态加载这些内容(第三种方法)。
在实际项目中,我们采用第三种方法进行权限控制,那么对用户、角色、权限、资源相互之间的关系内容和信息内容,就得由我们在数据库进行维护。需要维护的内容有用户、角色、权限、资源的增删改查,以及对用户和角色、角色和权限、权限和资源之间关系的管理,因此我们需要设计7张表(将会在下一章中学习)。
可以考虑分为三个菜单进行维护,用户设置、角色设置、资源设置。 在用户设置里分别管理用户、用户与角色的关系;在角色设置里管理角色、角色与权限的关系;在资源设置里分别管理权限、权限与资源的关系。资源的管理一般在项目正式上线时就已经在数据库中存储完成。