Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
acegi中的cache配置

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

通过读acegi的源码,更加体会到“基于接口”的设计给扩展带来巨大的灵活性。
在bean配置中,有以下内容:
 <bean id="daoAuthenticationProvider" class="net.sf.acegisecurity.providers.dao.PasswordDaoAuthenticationProvider">
      <property name="passwordAuthenticationDao"><ref bean="userDAO"/></property>
      <property name="userCache"><ref local="userCache"/></property> 
 </bean>
这个userCache,acegi给出了一个默认的EhCache的实现,如果你不设该属性,默认使用NullUserCache,用户登录后,每进入一个url,系统都会通过Dao访问一次数据库,来取得新的UserDetail,我自己的系统中持久层使用ibatis作映射,而ibatis有自已的基于配置的cache manager,根据自己搞的demo的log信息,确定了,在user.xml中给ibatis的select子句配置缓存模式后,完全不必再给上述的bean注入userCache属性了,当修改用户信息时会同时清除缓存信息。
        这点和我们平时的设计思路好象不同,我们一般的设计是,一个用户登录后,将其User Info Bean置入session中,随用随取,这个big bean包括了相关的细节信息以及角色集合。而acegi的“认证“与”授权“是分开的,它只在session中存了key的部分,具体需要用到对象时去缓存中拿。
        感谢spring,感谢acegi。




相关文章

相关软件