无法让Ehcache在春季3工作

时间:2012-07-04 08:00:01

标签: spring security ehcache

我是春天新手所以请原谅我,如果我的问题是愚蠢的......

我正在尝试按照一些示例来配置spring Web应用程序的安全性。我已将其配置为使用ldap目录。现在我需要向进程添加缓存,以便每次请求时都不会从ldap目录中获取凭据。

为此,我添加了cache-ref="userCache",如教程中所示:

<authentication-manager>
   <authentication-provider>
     ...
    <ldap-user-service server-ref="ldapServer"
       user-search-filter="uid={0}" user-search-base="ou=people"
       group-search-filter="member={0}" group-search-base="ou=groups"
       cache-ref="userCache" />
   </authentication-provider>
</authentication-manager>

bean userCache的定义如下:

 <beans:bean id="userCache"             
    class="org.springframework.security.providers.
    dao.cache.EhCacheBasedUserCache">
    <beans:property name="cache" ref="userEhCache" />
 </beans:bean>
 <beans:bean id="userEhCache"
     class="org.springframework.cache.ehcache.EhCacheFactoryBean">
     <beans:property name="cacheManager" ref="cacheManager" />
     <beans:property name="cacheName" value="userCache" />
 </beans:bean>

缓存管理器定义如下:

  <bean id="cacheManager"
   class="org.springframework.security.core.userdetails.cache.EhCacheManagerFactoryBean" />

这个配置的问题是我无法获得jar,因为它们基于旧版本的spring 2.我使用的缓存管理器

 <bean id="cacheManager"
 class="net.sf.ehcache.CacheManager" />

org.springframework.cache.ehcache.EhCacheFactoryBeanorg.springframework.security.providers.dao.cache.EhCacheBasedUserCache我不知道从第2弹开始到哪里,如果我添加到我的项目中它会刹车一切。

我很感激这方面的任何帮助。如果您有其他解决方案,请提出一些建议。谢谢!

1 个答案:

答案 0 :(得分:2)

在Spring 3.0.x中org.springframework.cache.ehcache.EhCacheFactoryBean位于 spring-context-support-3.0.x.RELEASE.jar

没有课程org.springframework.security.providers.dao.cache.EhCacheBasedUserCache,但 spring-security-core-3.0.x.RELEASE.jar 中有一个课程org.springframework.security.core.userdetails.cache.EhCacheBasedUserCache