|
|
@@ -9,7 +9,7 @@ import redis.clients.jedis.JedisPool; |
|
|
|
|
|
|
|
/**
|
|
|
|
* Jedis client implementor for wechat config storage
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @author gaigeshen
|
|
|
|
*/
|
|
|
|
public class WxCpJedisConfigStorage implements WxCpConfigStorage {
|
|
|
@@ -41,42 +41,37 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
/* Redis clients pool */
|
|
|
|
private final JedisPool jedisPool;
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param jedis
|
|
|
|
*/
|
|
|
|
public WxCpJedisConfigStorage(String host, int port) {
|
|
|
|
this.jedisPool = new JedisPool(host, port);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* This method will be destroy jedis pool
|
|
|
|
*/
|
|
|
|
public void destroy() {
|
|
|
|
this.jedisPool.destroy();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getAccessToken() {
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
return jedis.get(ACCESS_TOKEN_KEY);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isAccessTokenExpired() {
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
String expiresTimeStr = jedis.get(ACCESS_TOKEN_EXPIRES_TIME_KEY);
|
|
|
|
|
|
|
|
|
|
|
|
if (expiresTimeStr != null) {
|
|
|
|
Long expiresTime = Long.parseLong(expiresTimeStr);
|
|
|
|
return System.currentTimeMillis() > expiresTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
@@ -96,7 +91,7 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) {
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
jedis.set(ACCESS_TOKEN_KEY, accessToken);
|
|
|
|
|
|
|
|
|
|
|
|
jedis.set(ACCESS_TOKEN_EXPIRES_TIME_KEY,
|
|
|
|
(System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L) + "");
|
|
|
|
}
|
|
|
@@ -111,17 +106,17 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isJsapiTicketExpired() {
|
|
|
|
|
|
|
|
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
String expiresTimeStr = jedis.get(JS_API_TICKET_EXPIRES_TIME_KEY);
|
|
|
|
|
|
|
|
|
|
|
|
if (expiresTimeStr != null) {
|
|
|
|
Long expiresTime = Long.parseLong(expiresTimeStr);
|
|
|
|
return System.currentTimeMillis() > expiresTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
@@ -134,14 +129,14 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
|
|
|
|
@Override
|
|
|
|
public synchronized void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) {
|
|
|
|
|
|
|
|
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
jedis.set(JS_API_TICKET_KEY, jsapiTicket);
|
|
|
|
|
|
|
|
|
|
|
|
jedis.set(JS_API_TICKET_EXPIRES_TIME_KEY,
|
|
|
|
(System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L + ""));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -173,14 +168,14 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
public long getExpiresTime() {
|
|
|
|
try (Jedis jedis = this.jedisPool.getResource()) {
|
|
|
|
String expiresTimeStr = jedis.get(ACCESS_TOKEN_EXPIRES_TIME_KEY);
|
|
|
|
|
|
|
|
|
|
|
|
if (expiresTimeStr != null) {
|
|
|
|
Long expiresTime = Long.parseLong(expiresTimeStr);
|
|
|
|
return expiresTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return 0L;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
@@ -240,7 +235,7 @@ public class WxCpJedisConfigStorage implements WxCpConfigStorage { |
|
|
|
}
|
|
|
|
|
|
|
|
// ============================ Setters below
|
|
|
|
|
|
|
|
|
|
|
|
public void setOauth2redirectUri(String oauth2redirectUri) {
|
|
|
|
this.oauth2redirectUri = oauth2redirectUri;
|
|
|
|
}
|
|
|
|