0
引言
随着应用系统的普及
,
用户权限的管理和维护
日趁复杂
,
权限控制系统在应用系统中越来越重要
,
同时随着应用系统功能和业务需求的多变性
,
权限
控制系统通常被要求应具备较强的适应性和可配置
性
.
而在一些对安全较严格的应用系统中
,
通常权限
控制系统还需具备细粒度的权限控制
.
在
JavaEE
项
目中
,
程序开发人员通常会选择一些较为成熟的安
全框架
,
如
JAAS
(
Java
认证
/
授权服务
)、
Spring
Securi
-
ty
、
Apache
Shiro
等
.
在
Apache
Shiro
发布前
,
由于没有太多的安全框
架可选择
,
JavaEE
开发人员只能选择授权方面较为
拙劣的
JAAS
和配置极其繁琐的
Spring
Security.
可幸
的是
,
Apache
Shiro
安全框架
,
以其灵活
、
易
用
、
开放
源代码的特性
,
被广泛运用于各类应用系统的安全
控制中
.Apache
Shiro
安全框架通过提供一套强大的
认证和授权
API
,
开发人员只需要调用相应的
API
,
即
可完成复杂
、
繁琐的认证和授权功能
.
1
Shiro
框架介绍
Apache
Shiro
是一个功能强大
、
灵活性较好的
Ja
-
va
开源安全框架
,
提供了身份认证
、
访问授权
、
数据
加密和会话管理等功能
,
它能够为任何应用提供安
全认证及身份控制
,
支持命令行应用
、
移动应用
、
企
业应用和大型网络应用等不同环境下的安全保
障
.
1.1
主要功能
Apache
Shiro
的主要
功能
是
通
过
提
供
一
套
完
整
的
API
来解决应用安全的四大要素
[
1
]
:
1
)
身份认证
(
Authenticator
):
验证用户的身份信
息
,
通常指用户的登录信息
;
2
)
访问授权
(
Authorizer
):
对用户进行访问控制
,
判断用户是否有权限执行某操作
,
判断用户是否已
分配了特定的安全角色
;
同时
Shiro
提供了一套强大
的权限检查
API
,
允许对需要进行访问控制的单个资
源进行权限判断
,
甚至支持非常细粒度的实例级别
的权限判断
,
即实现对具体某条数据的访问控制
;
3
)
数据加密
(
Cryptography
):
通过使用提供的加
密算法对敏感数据进行加密
,
保证数据的安全
.Shiro
提供了
大量
易
于
使
用
、
易
于
理
解
的
Hasher
、
Crypto
-
graphic
以及不同编码器实现的加密算法
,
程序开发
人员只需要简单的调用这些加密算法
,
就可以实现
对数据的安全保护
.
4
)
会话管理
(
SessionManager
):
Shiro
为用户提供
了一个强健的会话管理功能
,
用户可以通过
API
创建和
管理所有环境下用户的
Session
生命周期
.
这也是
Shiro
在众多安全框架中一个独有的特色
,
Shiro
能够在任何
环境下对用户
Session
进行本地化管理
,
即使在没有
基于
Shiro
框架的细粒度权限控制系统的
设计与实现
黄经赢
(
广东技术师范学院
,
广东
广州
510665
)
摘
要
:
本文介绍了
Apache
Shiro
安全框架的主要功能和特点
,
采用
RBAC
的模型设计了一套基于
Shiro
框
架的细粒度权限控制系统
,
并将
Apache
Shiro
与当前流行的
JavaEE
开源框架
Spring
进行整合
,
最终实现了该
系统
,
并在实际项目中取得了较好的效果
.
关键词
:
Shiro;
RBAC;
权限控制
中图分类号
:
TP
319
文献标识码
:
B
文章编号
:
1672
-
402X
(
2013
)
07
-
0020-
04
收稿日期
:
2013-07-01