We have created the following class, which will provide the UserCache bean that will provide it to AuthenticationProvider:
@Configuration
@EnableCaching
public class SpringMvcCacheConfig {
@Bean
public EhCacheFactoryBean ehCacheFactoryBean() {
EhCacheFactoryBean ehCacheFactory = new EhCacheFactoryBean();
ehCacheFactory.setCacheManager(cacheManagerFactoryBean()
.getObject());
return ehCacheFactory;
}
@Bean
public CacheManager cacheManager() {
return new
EhCacheCacheManager(cacheManagerFactoryBean().getObject());
}
@Bean
public EhCacheManagerFactoryBean cacheManagerFactoryBean() {
EhCacheManagerFactoryBean cacheManager = new
EhCacheManagerFactoryBean();
return cacheManager;
}
@Bean
public UserCache userCache() {
EhCacheBasedUserCache userCache = new EhCacheBasedUserCache();
userCache.setCache(ehCacheFactoryBean().getObject());
return userCache;
}
}
In the preceding class, @EnableCaching enables cache management.