酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

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

作者:黎小红
来源:论文网
点击:
载入中...
加入时间:2007-11-24
字体大小:[  ]


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

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


图1 安全管理对象,拦截器和安全管理组件交互图

图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>


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


<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=”authenticationManager” class=”org.acegisecurity. providers.ProviderManager”>
 <property name=”providers”>
  <list>
   <ref local=”daoAuthenticationProvider”/>
  </list>
 </property>
</bean>
转贴于 酷文网-论文下载中心 http://www.coolwen.net


共4页: 上一页 [1] 2 [3] [4] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号