//package com.project.shiro.util.redis;
//
//
//import cn.wisenergy.service.common.utils.redis.RedisClient;
//import cn.wisenergy.service.common.utils.redis.RedisConsts;
//import org.apache.shiro.cache.Cache;
//import org.apache.shiro.cache.CacheException;
//import org.apache.shiro.cache.CacheManager;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import javax.annotation.Resource;
//import java.util.concurrent.ConcurrentHashMap;
//import java.util.concurrent.ConcurrentMap;
//
//public class ShiroRedisCacheManager implements CacheManager {
//
//    private static final Logger logger = LoggerFactory.getLogger(ShiroRedisCacheManager.class);
//
//    private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();
//
//    //注入redisClient实例
//    @Resource(name = "redisClient")
//    private RedisClient redisClient;
//
//    /**
//     * shiro权限缓存前缀
//     */
//    private String keyPrefix = RedisConsts.ADMIN_SHIRO_REALM_KEY;
//
//
//    @Override
//    public <K, V> Cache<K, V> getCache(String name) throws CacheException {
//
//        logger.debug("获取名称为: " + name + " 的RedisCache实例");
//        Cache c = caches.get(keyPrefix + name);
//        if (c == null) {
//            c = new ShiroRedisCache<K, V>(redisClient, keyPrefix);
//            caches.put(keyPrefix + name, c);
//        }
//        return c;
//    }
//
//    public RedisClient getRedisClient() {
//        return redisClient;
//    }
//
//    public void setRedisClient(RedisClient redisClient) {
//        this.redisClient = redisClient;
//    }
//
//    public String getKeyPrefix() {
//        return keyPrefix;
//    }
//
//    public void setKeyPrefix(String keyPrefix) {
//        this.keyPrefix = keyPrefix;
//    }
//}
