搭建基于角色的权限控制系统

安全永远是WEB应用系统必须面对的头等大事, 也是最头疼的事, 其实安全系统就只包括两个问题: 认证和授权. 网管下载dl.bitscn.com

以前做些网站系统, 安全检测逻辑都在放在须要安全控制的代码前面, 这样做有很多不好的地方, 重复多次的编码就不用说了, 代码移植性, 重用性都得不到体现, 安全检测逻辑要永远和业务逻辑放在一起. 网管下载dl.bitscn.com

那么, 能不能够在进入方法前就调用一些安全检测? 其实Spring AOP就是这个思想, 那么又如何实现安全检测呢? Spring Acegi Security 框架就是做这个事情.

中国网管论坛bbs.bitsCN.com

本文主要是讨论下在已有的SSH系统中, 如何使用Acegi作为安全框架实现基于角色的权限控制(Role Based Access Control RBAC) , 本文主要是以Java 5注解的形式来配置安全框架, 大大减化配置和操作. 网管u家u.bitsCN.com

本文的主要参考资料: <Spring 2.0 核心技术与最佳实践> 第10章 (Spring Acegi 安全框架) 网管bitscn_com

<精通Spring 2.X -- 企业应用开发详解> 第17章 (使用Acegi 实施应用系统安全)

网管bitscn_com

acegi-security-1.0.6 官方文档

网管网www_bitscn_com


说明: 本文介绍的是RBAC, 在官方文档的基础上有所扩展或改动, 以更适合WEB应用系统. 其实我觉得大多数的网站基于角色已经足够了, 一般都没必要基于权限.

网管u家u.bitsCN.com


文章开始: 网管论坛bbs_bitsCN_com

一. 下载所要的软件或JAR包:

网管网www_bitscn_com

我的相关配置是: Java 5, Tomcat 5.5.26, Struts 2.0.11, Spring 2.5.1, Hibernate 3.2, Acegi 1.0.6

中国网管联盟bitsCN.com

二. 建立相关的数据库:

网管论坛bbs_bitsCN_com

数据表: 用户信息表User: id, enable, user_name, user_pass, email_box

网管论坛bbs_bitsCN_com


角色信息表RoleInfo: id, role_name, role_title, descp 中国网管论坛bbs.bitsCN.com

用户与角色关联表(用户与角色是多对多关系)UserRole: user_id, user_name, role_id, role_name

网管u家u.bitsCN.com

并在这三个表中插入相关的数据, 我是定义了两种角色(role_name): ROLE_USER, ROLE_ADMIN 网管联盟bitsCN_com

和三个用户, 一个用户角色为: ROLE_USER, ROLE_ADMIN

网管联盟bitsCN@com

另一个用户角色为: ROLE_USER 中国网管论坛bbs.bitsCN.com

第三个没有角色.

网管u家u.bitscn@com


二. 修改配置文件: 网管联盟bitsCN_com

其实对Acegi框架的应用难点就在配置文件, 所以要特别注意了: 中国网管论坛bbs.bitsCN.com

在 src 建立Acegi的配置文件: acegi-security.xml 当然这个文件的名称是可以任意的.
【转自www.bitsCN.com】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值