|
@@ -40,6 +40,9 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
@Autowired
|
|
@Autowired
|
|
private RedisTemplate<String, Object> redisTemplate;
|
|
private RedisTemplate<String, Object> redisTemplate;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedisTemplate<String, String> stringRedisTemplate;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private CorpMapper corpMapper;
|
|
private CorpMapper corpMapper;
|
|
|
|
|
|
@@ -84,27 +87,27 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
return CommonResponse.create(ExceptionCodeEnum.PARAMS_ERROR, "secret 不存在");
|
|
return CommonResponse.create(ExceptionCodeEnum.PARAMS_ERROR, "secret 不存在");
|
|
}
|
|
}
|
|
AccessTokenVo accessTokenVo = new AccessTokenVo();
|
|
AccessTokenVo accessTokenVo = new AccessTokenVo();
|
|
- String accessToken = (String) redisTemplate.opsForValue().get(param.getSecret());
|
|
|
|
|
|
+ String accessToken = (String) stringRedisTemplate.opsForValue().get(param.getSecret());
|
|
if (StringUtils.isNotEmpty(accessToken)) {
|
|
if (StringUtils.isNotEmpty(accessToken)) {
|
|
- Long expire = Long.parseLong(String.valueOf(redisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS)));
|
|
|
|
|
|
+ Long expire = Long.parseLong(String.valueOf(stringRedisTemplate.getExpire(param.getSecret(), TimeUnit.SECONDS)));
|
|
accessTokenVo.setAccessToken(accessToken);
|
|
accessTokenVo.setAccessToken(accessToken);
|
|
accessTokenVo.setExpires(expire);
|
|
accessTokenVo.setExpires(expire);
|
|
- if (redisTemplate.opsForHash().size(ACCESS_TOKEN_LIST) > 20) {
|
|
|
|
- Map<Object, Object> entries = redisTemplate.opsForHash().entries(ACCESS_TOKEN_LIST);
|
|
|
|
|
|
+ if (stringRedisTemplate.opsForHash().size(ACCESS_TOKEN_LIST) > 20) {
|
|
|
|
+ Map<Object, Object> entries = stringRedisTemplate.opsForHash().entries(ACCESS_TOKEN_LIST);
|
|
entries.forEach((k, v) -> {
|
|
entries.forEach((k, v) -> {
|
|
long timestamp = Long.parseLong((String) v);
|
|
long timestamp = Long.parseLong((String) v);
|
|
if (System.currentTimeMillis() / 1000 > timestamp) {
|
|
if (System.currentTimeMillis() / 1000 > timestamp) {
|
|
- redisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, k);
|
|
|
|
|
|
+ stringRedisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, k);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
String newAccessToken = UUID.randomUUID().toString().replace("-", "");
|
|
String newAccessToken = UUID.randomUUID().toString().replace("-", "");
|
|
- redisTemplate.opsForValue().set(param.getSecret(), newAccessToken, 2L, TimeUnit.HOURS);
|
|
|
|
- redisTemplate.opsForValue().set(newAccessToken, param.getSecret(), 3L, TimeUnit.HOURS);
|
|
|
|
|
|
+ stringRedisTemplate.opsForValue().set(param.getSecret(), newAccessToken, 2L, TimeUnit.HOURS);
|
|
|
|
+ stringRedisTemplate.opsForValue().set(newAccessToken, param.getSecret(), 3L, TimeUnit.HOURS);
|
|
long expire = 7200L;
|
|
long expire = 7200L;
|
|
String timestamp = String.valueOf(System.currentTimeMillis() / 1000 + expire + 600);
|
|
String timestamp = String.valueOf(System.currentTimeMillis() / 1000 + expire + 600);
|
|
- redisTemplate.opsForHash().put(ACCESS_TOKEN_LIST, newAccessToken, timestamp);
|
|
|
|
|
|
+ stringRedisTemplate.opsForHash().put(ACCESS_TOKEN_LIST, newAccessToken, timestamp);
|
|
accessTokenVo.setAccessToken(newAccessToken);
|
|
accessTokenVo.setAccessToken(newAccessToken);
|
|
accessTokenVo.setExpires(expire);
|
|
accessTokenVo.setExpires(expire);
|
|
}
|
|
}
|
|
@@ -113,13 +116,13 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean validateAccessToken(String accessToken) {
|
|
public boolean validateAccessToken(String accessToken) {
|
|
- Object o = redisTemplate.opsForHash().get(ACCESS_TOKEN_LIST, accessToken);
|
|
|
|
|
|
+ Object o = stringRedisTemplate.opsForHash().get(ACCESS_TOKEN_LIST, accessToken);
|
|
if (o == null) {
|
|
if (o == null) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
long timestamp = Long.parseLong((String) o);
|
|
long timestamp = Long.parseLong((String) o);
|
|
if (System.currentTimeMillis() / 1000 > timestamp) {
|
|
if (System.currentTimeMillis() / 1000 > timestamp) {
|
|
- redisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, accessToken);
|
|
|
|
|
|
+ stringRedisTemplate.opsForHash().delete(ACCESS_TOKEN_LIST, accessToken);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
@@ -127,7 +130,7 @@ public class AccessTokenServiceImpl implements AccessTokenService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public SecretEnum getSecretEnum(String accessToken) {
|
|
public SecretEnum getSecretEnum(String accessToken) {
|
|
- String secret = (String) redisTemplate.opsForValue().get(accessToken);
|
|
|
|
|
|
+ String secret = (String) stringRedisTemplate.opsForValue().get(accessToken);
|
|
if(StringUtils.isEmpty(secret)){
|
|
if(StringUtils.isEmpty(secret)){
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|