- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Acegi Spring Hibernate Struts 2搭建基于角色的权限控制系统
安全永远是WEB应用系统必须面对的头等大事, 也是最头疼的事, 其实安全系统就只包括两个问题: 认证和授权.
??? 以前做些网站系统, 安全检测逻辑都在放在须要安全控制的代码前面, 这样做有很多不好的地方, 重复多次的编码就不用说了, 代码移植性, 重用性都得不到体现, 安全检测逻辑要永远和业务逻辑放在一起.
??? 那么, 能不能够在进入方法前就调用一些安全检测? 其实Spring AOP就是这个思想, 那么又如何实现安全检测呢? Spring Acegi Security 框架就是做这个事情.
???? 本文主要是讨论下在已有的SSH系统中, 如何使用Acegi作为安全框架实现基于角色的权限控制(Role Based Access Control RBAC) , 本文主要是以Java 5注解的形式来配置安全框架, 大大减化配置和操作.
??? 本文的主要参考资料: Spring 2.0 核心技术与最佳实践 第10章 (Spring Acegi 安全框架)
??????????????? 精通Spring 2.X -- 企业应用开发详解 第17章 (使用Acegi 实施应用系统安全)
??????????????? acegi-security-1.0.6 官方文档
??? 说明: 本文介绍的是RBAC, 在官方文档的基础上有所扩展或改动, 以更适合WEB应用系统. 其实我觉得大多数的网站基于角色已经足够了, 一般都没必要基于权限.
???? 文章开始:
一. 下载所要的软件或JAR包:
??? 我的相关配置是: Java 5, Tomcat 5.5.26, Struts 2.0.11, Spring 2.5.1, Hibernate 3.2, Acegi 1.0.6
二. 建立相关的数据库:
???? 数据表: 用户信息表User: id, enable, user_name, user_pass, email_box
???????????????? 角色信息表RoleInfo: id, role_name, role_title, descp
???????????????? 用户与角色关联表(用户与角色是多对多关系)UserRole: user_id, user_name, role_id, role_name
??????????????? 并在这三个表中插入相关的数据, 我是定义了两种角色(role_name): ROLE_USER, ROLE_ADMIN
??????????????? 和三个用户, 一个用户角色为: ROLE_USER, ROLE_ADMIN
???????????????? 另一个用户角色为: ROLE_USER
??????????????? 第三个没有角色.
二. 修改配置文件:
??? 其实对Acegi框架的应用难点就在配置文件, 所以要特别注意了:
??? 在 src 建立Acegi的配置文件: acegi-security.xml 当然这个文件的名称是可以任意的.
??? acegi-security.xml 说白了就是配置: 安全拦截器, 认证管理器, 决策管理器.
??? 其内容如下:
?xml version=1.0 encoding=UTF-8?beans xmlns=/schema/beans xmlns:xsi=/2001/XMLSchema-instance?????? xsi:schemaLocation=/schema/beans /schema/beans/spring-beans.xsd!-- ========================= 认证管理器 ========================= --bean id=authenticationManager class=viders.ProviderManagerproperty name=providers?? list??? ref bean=daoAuthenticationProvider /??? ref bean=rememberMeAuthenticationProvider /?? /list/property/bean
!-- 基于DAO验证的AuthenticationProvider --bean id=daoAuthenticationProvider class=viders.dao.DaoAuthenticationProviderproperty name=userDetailsService ref=userDetailsService //beanbean id=userDetailsService class=org.ymcn.s
您可能关注的文档
- (加气砼)墙面抹灰施工方法.doc
- (改)基于Web网络签到系统的研究与应用.doc
- (毕业设计)基于linux的服务器架构.doc
- (用excel电子表格工具绘制标准曲线图片教程)-word文档.doc
- (经典)USB数据采集系统设计.doc
- (市政)中银开发区污水处理厂报告书1-14.doc
- (毕业设计)基于数字图像处理的电表号码识别系统研究.doc
- -向基于 Linux 的 Oracle RAC 10g 集群添加新节点.docx
- (超好,实用)Proteus入门教程.docx
- 010142094-2012-2013典型液压教学大纲20120929.doc
- 2023年河北省保定市高碑店市卫生健康局公务员考试《行政职业能力测验》历年真题及详解.docx
- 2023年河北省保定市安国市信访局公务员考试《行政职业能力测验》历年真题及详解.docx
- 信息必刷卷03(广东省专用)(解析版).docx
- 信息必刷卷02(天津专用)(原卷版).docx
- 信息必刷卷03(安徽专用)(原卷版).docx
- 热点08 工艺流程题 -2024年中考化学【热点·重点·难点】专练(江苏专用)(解析版).docx
- 专题06 比较异同类选择题(含答题技巧,题型专练60题)(解析版).docx
- 专题09 推断题、工业流程题、溶解度曲线题(解析版).docx
- 信息必刷卷04(湖南专用)(解析版).docx
- 信息必刷卷01(福建专用)(原卷版).docx
文档评论(0)