JavaEE权限管理分析
一.背景
在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并应用在整个应用的开发过程中。
二.权限管理需求
1.权限管理应该拥有的功能
(1)管理权限:可以灵活地管理角色、分配权限,并将角色赋予系统相关用户以及认证、授权。并为系统其他模块提供授权信息支持。
(2)功能级权限管理:不同角色的用户访问相应权限的内容或数据。
(3)数据级权限管理:对系统数据进行增、删、改、查必须在相应权限范围内.
2.权限管理模块的期望
(1)简单、易操作,满足系统权限需求,可以跟现有系统无缝整合
(2)应对需求变更能力强
(3)既能提供功能级权限又能提供数据级权限。
(4)有相关界面,比如权限管理界面、角色管理界面,角色和权限关系维护界面,用户和角色关系维护界面。
三.主流权限管理中间件或者框架
1.Spring security
简介:
前身是Acegi,Acegi成为Spring子项目后改名为Sp