package com.fastbee.iot.service.impl;
|
|
import com.fastbee.common.core.redis.RedisCache;
|
import com.fastbee.common.utils.sign.Md5Utils;
|
import me.zhyd.oauth.cache.AuthCacheConfig;
|
import me.zhyd.oauth.cache.AuthStateCache;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 扩展Redis版的state缓存
|
*
|
* @author json
|
* @date 2022/04/12
|
*/
|
@Component
|
public class AuthStateRedisCache implements AuthStateCache {
|
|
@Autowired
|
private RedisCache redisCache;
|
|
@Override
|
public void cache(String key, String value) {
|
redisCache.setCacheObject(key, getValue(value), (int) AuthCacheConfig.timeout, TimeUnit.MILLISECONDS);
|
}
|
|
@Override
|
public void cache(String key, String value, long timeout) {
|
redisCache.setCacheObject(key, getValue(value), (int) timeout, TimeUnit.MILLISECONDS);
|
}
|
|
@Override
|
public String get(String key) {
|
return redisCache.getCacheObject(key);
|
}
|
|
@Override
|
public boolean containsKey(String key) {
|
return redisCache.containsKey(key);
|
}
|
|
/**
|
* 自定义state
|
* @param oldState
|
* @return state
|
*/
|
private String getValue(String oldState) {
|
return Md5Utils.hash(oldState + System.currentTimeMillis());
|
}
|
}
|