acegi中的cache配置

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

通过读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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航