常用校验token加上二级缓存

This commit is contained in:
wangliwen 2022-07-05 09:21:03 +08:00
parent 0f25b9414e
commit c69efa101f
2 changed files with 70 additions and 56 deletions

View File

@ -57,4 +57,13 @@
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
<!-- getByToken缓存 -->
<cache name="getByToken"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="60"
timeToLiveSeconds="600"
overflowToDisk="true"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>

View File

@ -4,6 +4,8 @@ import io.renren.common.service.impl.BaseServiceImpl;
import io.renren.dao.TokenDao;
import io.renren.entity.TokenEntity;
import io.renren.service.TokenService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -12,17 +14,20 @@ import java.util.UUID;
@Service
public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> implements TokenService {
private static final String getByTokenKey = "getByToken";
/**
* 12小时后过期
*/
private final static int EXPIRE = 3600 * 12;
@Override
@Cacheable(value = getByTokenKey, key = "#p1")
public TokenEntity getByToken(String token) {
return baseDao.getByToken(token);
}
@Override
@CacheEvict(key = getByTokenKey, allEntries = true)
public TokenEntity createToken(Long userId) {
//当前时间
Date now = new Date();
@ -34,7 +39,7 @@ public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> imp
//判断是否生成过token
TokenEntity tokenEntity = baseDao.getByUserId(userId);
if(tokenEntity == null){
if (tokenEntity == null) {
//生成一个token
token = generateToken();
@ -46,12 +51,12 @@ public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> imp
//保存token
this.insert(tokenEntity);
}else{
} else {
//判断token是否过期
if(tokenEntity.getExpireDate().getTime() < System.currentTimeMillis()){
if (tokenEntity.getExpireDate().getTime() < System.currentTimeMillis()) {
//token过期重新生成token
token = generateToken();
}else {
} else {
token = tokenEntity.getToken();
}
@ -67,7 +72,7 @@ public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> imp
}
@Override
public void expireToken(Long userId){
public void expireToken(Long userId) {
Date now = new Date();
TokenEntity tokenEntity = new TokenEntity();
@ -78,7 +83,7 @@ public class TokenServiceImpl extends BaseServiceImpl<TokenDao, TokenEntity> imp
this.updateById(tokenEntity);
}
private String generateToken(){
private String generateToken() {
return UUID.randomUUID().toString().replace("-", "");
}
}