我是春天新手所以请原谅我,如果我的问题是愚蠢的......
我正在尝试按照一些示例来配置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.EhCacheFactoryBean
和org.springframework.security.providers.dao.cache.EhCacheBasedUserCache
我不知道从第2弹开始到哪里,如果我添加到我的项目中它会刹车一切。
我很感激这方面的任何帮助。如果您有其他解决方案,请提出一些建议。谢谢!
答案 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
。