快速业务通道

实现基于Spring框架应用的权限控制系统 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
资料和资源授权信息的数据持久化形式。

实现基于Spring框架应用的权限控制系统(2)

时间:2010-05-21 计算机与信息技术 黎小红

2、Acegi安全系统数据库设计

在Acegi框架中支持多种安全信息的持久化方式,可以在配置文件中配置或存放在关系数据库。由于在实际应用中,需求是经常发生变化的。所以,在配置文件中配置是满足不了实际应用需求的。然而,Acegi本身对权限表的设计非常简单,users表{username,password,enabled} 和authorities表{username,authority},这样简单的设计肯定无法适用复杂的权限需求。为了解决权限管理的复杂性,在这里引入了role(角色)的概念,使得用户和权限分离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵活地支持安全策略。

同时,为了更好地配合Acegi安全框架,还引入resource(资源)的概念,资源可分为URL和FUNCTION(方法)两种,一个权限可以对应多个资源。具体的数据库设计见图2。

实现基于Spring框架应用的权限控制系统 - 编程入门网

图1 安全管理对象,******和安全管理组件交互图

实现基于Spring框架应用的权限控制系统 - 编程入门网

图2 Acegi安全控制系统数据库设计

3、认证管理器,授权管理器的配置

实现系统的安全控制,首先需要对系统的安全管理器和授权管理器进行配置,系统进行认证和授权需要获取安全信息,Acegi本身提供了对认证信息的获取机制,在实现认证与授权过程中,系统将主动根据配制信息和相应的信息解释安全信息的读取。图3给出了一个将用户安全信息存储在数据库中的认证管理器的配置示意图。

对应于图示的XML配置文件的代码如下:

/* 配置数据库datasource 和Acegi 的 jdbcDao */ <bean id=”dataSource” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>  <property name=”driverClassName”>   <value>${jdbc.driverClassName}</value>  </property>  <property name=”url”>   <value>${jdbc.url}</value>  </property>

实现基于Spring框架应用的权限控制系统 - 编程入门网

图3 认证管理器配制示意图

实现基于Spring框架应用的权限控制系统(3)

时间:2010-05-21 计算机与信息技术 黎小红

<property name=”username”> <value>${jdbc.username}</value> </property> <property name=”password”> <value>${jdbc.password}</value> </property> </bean> <bean id=”jdbcDaoImpl” class=”org.acegisecurity. roviders. dao.jdbc.JdbcDaoImpl”> <property name=”dataSource”> <ref bean=”dataSource”/> </property> </bean> /*配置用户信息的加密算法*/ <bean id=”passwordEncoder” Class=”org.acegisecurity.providers.encoding.Md5passwordEncoder”/> /*配置缓存有效时间*/ <bean id=”userCache” class=”org.acegiSecurity. providers. dao.cache.EhCacheBasedUserCache”>   …//这里对缓存有效时间进行设置 </bean> /*配置daoAuthenticationProvider*/ <bean id=”daoAuthenticationProvider” class=”org.acegisecurity.providers.dao.DaoAuthenticationProvider”> <property name=”authenticationDao”> <ref local=”JdbcDaoImpl”/> </property> <property name=”passwordEncoder”> <ref local=” passwordEncoder”/> </property> <property name=”userCache”> <ref local=” userCache”/> </property> </bean> /*配置认证管理器*/ <bean id=”authenticatio

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号