spring acegi 权限设计

一般在一个应用系统中都会有权限的设计,最基本的权限设计会关系到五张表,用户表,角色表,权限表用户和角色的中间表,角色和权限的中间表,这样五张表,在负责一些的权限设计还会进行分组,将资源放入表中,并建立权限和资源的中间关系表,

 

https://p-blog.csdn.net/images/p_blog_csdn_net/cailiang517502214/EntryImages/20090923/59833db1tc7a7e10c3d18&690副本.jpg


spring acegi 是spring框架中最为优秀的框架之一,今天讲的是关于spring acegi的权限配置,其中会采用jcaptcha的验证码服务 整个项目 采用struts2.16(注解) hibernate3.12(注解) spring2.5(注解) spring acegi 2.05的版本.
整个项目的结构如图:

 

 

要在项目中使用spring acegi需要在web.xml中引入 acegi

(struts2 和hibernate的引入就不说了,关于验证码 在后面下载的例子中会有详细的配置)
在引入acegi后,最主要的就是关于applicationContext-serurity.xml文件的配置了,

intercept-url  是表示受保护的资源,access是指那些角色具有访问权限,由于acegi的默认权限是一ROLE_开头的,所以通过access-decision-manager-ref="accessDecisionManager" 这个bean标签可以修改成你所需要的前缀,并不局限于acegi,form-login 配置系统的登录页面,default-target-url是指登录成功后返回的页面,authentication-failure-url是指认证失败后的页面,
acegi的认证模式有好几种,比如数据库的认证模式(常用模式),cas认证等等,
<authentication-provider user-service-ref="myUserDetailServices >
</authentication-provider >
这种模式 是基于数据库的认证模式 myUserDetailServices 是自己定义的一个spring bean
<beans:bean id="myUserDetailServices" class="com.happy.services.LoginValidate"></beans:bean>

这是我们自己写的一个类,但是这个类有些特殊,这个类必须实现 UserDetailsService接口实现loadUserByUsername方法并 返回UserDetails
当然在测试的时候 我们可以把用户名和这些直接写在配置文件中

去掉基于数据库的认证模式. 这样就完成了acegi的配置,当具有权限的人才有权访问指定的页面,acegi还有一系列的标签,用来在页面上控制内容的展示,


<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%>(导入标签)
比如说 <security:authorize ifAnyGranted="A_Administrator">删除</security:authorize> 当用户具有A_Administrator的权限时 才会显示 删除菜单,这就是一个简单的基于acegi权限的配置


资源的下载地址:
http://download.csdn.net/source/1620226 带验证码(基于配置文件的验证)
http://download.csdn.net/source/1606935 不带验证码 (基于数据库的验证)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值