From 68fbb2ee3e63209195df471470de6ac7774fce78 Mon Sep 17 00:00:00 2001 From: flying Date: Wed, 12 Apr 2017 16:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9F=BA=E4=BA=8ERedis?= =?UTF-8?q?=E7=9A=84=E5=BE=AE=E4=BF=A1=E9=85=8D=E7=BD=AE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/api/WxMpInRedisConfigStorage.java | 247 +----------------- 1 file changed, 14 insertions(+), 233 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java index 89648268..b2bb9b4e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpInRedisConfigStorage.java @@ -1,21 +1,14 @@ package me.chanjar.weixin.mp.api; -import me.chanjar.weixin.common.bean.WxAccessToken; -import me.chanjar.weixin.common.util.ToStringUtils; -import me.chanjar.weixin.common.util.http.ApacheHttpClientBuilder; import redis.clients.jedis.Jedis; -import javax.net.ssl.SSLContext; -import java.io.File; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - /** * 基于Redis的微信配置provider * * @author lly835 */ -public class WxMpInRedisConfigStorage implements WxMpConfigStorage { +@SuppressWarnings("hiding") +public class WxMpInRedisConfigStorage extends WxMpInMemoryConfigStorage { private final static String ACCESS_TOKEN_KEY = "wechat_access_token_"; @@ -23,43 +16,6 @@ public class WxMpInRedisConfigStorage implements WxMpConfigStorage { private final static String CARDAPI_TICKET_KEY = "wechat_cardapi_ticket_"; - protected volatile String appId; - protected volatile String secret; - protected volatile String partnerId; - protected volatile String partnerKey; - protected volatile String notifyURL; - protected volatile String tradeType; - protected volatile String token; - protected volatile String accessToken; - protected volatile String aesKey; - protected volatile long expiresTime; - - protected volatile String oauth2redirectUri; - - protected volatile String httpProxyHost; - protected volatile int httpProxyPort; - protected volatile String httpProxyUsername; - protected volatile String httpProxyPassword; - - protected volatile String jsapiTicket; - protected volatile long jsapiTicketExpiresTime; - - protected volatile String cardApiTicket; - protected volatile long cardApiTicketExpiresTime; - - protected Lock accessTokenLock = new ReentrantLock(); - protected Lock jsapiTicketLock = new ReentrantLock(); - protected Lock cardApiTicketLock = new ReentrantLock(); - - /** - * 临时文件目录 - */ - protected volatile File tmpDirFile; - - protected volatile SSLContext sslContext; - - protected volatile ApacheHttpClientBuilder apacheHttpClientBuilder; - protected Jedis jedis; @Override @@ -67,46 +23,25 @@ public class WxMpInRedisConfigStorage implements WxMpConfigStorage { return jedis.get(ACCESS_TOKEN_KEY.concat(appId)); } - @Override - public Lock getAccessTokenLock() { - return this.accessTokenLock; - } - @Override public boolean isAccessTokenExpired() { return getAccessToken() == null ? true : false; } - @Override - public synchronized void updateAccessToken(WxAccessToken accessToken) { - updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn()); - } - - @Override +@Override public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) { - this.accessToken = accessToken; - this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L; jedis.set(ACCESS_TOKEN_KEY.concat(appId), accessToken); jedis.expire(ACCESS_TOKEN_KEY.concat(appId), expiresInSeconds - 200); } @Override public void expireAccessToken() { - this.expiresTime = 0; + jedis.expire(ACCESS_TOKEN_KEY.concat(appId), 0); } @Override public String getJsapiTicket() { - return this.jsapiTicket; - } - - public void setJsapiTicket(String jsapiTicket) { - this.jsapiTicket = jsapiTicket; - } - - @Override - public Lock getJsapiTicketLock() { - return this.jsapiTicketLock; + return jedis.get(JSAPI_TICKET_KEY.concat(appId)); } @Override @@ -116,16 +51,13 @@ public class WxMpInRedisConfigStorage implements WxMpConfigStorage { @Override public synchronized void updateJsapiTicket(String jsapiTicket, int expiresInSeconds) { - this.jsapiTicket = jsapiTicket; - // 预留200秒的时间 - this.jsapiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L; - jedis.set(JSAPI_TICKET_KEY.concat(appId), accessToken); + jedis.set(JSAPI_TICKET_KEY.concat(appId), jsapiTicket); jedis.expire(JSAPI_TICKET_KEY.concat(appId), expiresInSeconds - 200); } @Override public void expireJsapiTicket() { - this.jsapiTicketExpiresTime = 0; + jedis.expire(JSAPI_TICKET_KEY.concat(appId), 0); } /** @@ -133,177 +65,26 @@ public class WxMpInRedisConfigStorage implements WxMpConfigStorage { */ @Override public String getCardApiTicket() { - return this.cardApiTicket; - } - - @Override - public Lock getCardApiTicketLock() { - return this.cardApiTicketLock; + return jedis.get(CARDAPI_TICKET_KEY.concat(appId)); } @Override public boolean isCardApiTicketExpired() { - return System.currentTimeMillis() > this.cardApiTicketExpiresTime; + return getCardApiTicket() == null ? true : false; } @Override public synchronized void updateCardApiTicket(String cardApiTicket, int expiresInSeconds) { - this.cardApiTicket = cardApiTicket; - // 预留200秒的时间 - this.cardApiTicketExpiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000L; - jedis.set(CARDAPI_TICKET_KEY.concat(appId), accessToken); + jedis.set(CARDAPI_TICKET_KEY.concat(appId), cardApiTicket); jedis.expire(CARDAPI_TICKET_KEY.concat(appId), expiresInSeconds - 200); } @Override public void expireCardApiTicket() { - this.cardApiTicketExpiresTime = 0; - } - - @Override - public String getAppId() { - return this.appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - @Override - public String getSecret() { - return this.secret; - } - - public void setSecret(String secret) { - this.secret = secret; - } - - @Override - public String getToken() { - return this.token; - } - - public void setToken(String token) { - this.token = token; - } - - @Override - public long getExpiresTime() { - return this.expiresTime; - } - - public void setExpiresTime(long expiresTime) { - this.expiresTime = expiresTime; - } - - @Override - public String getAesKey() { - return this.aesKey; - } - - public void setAesKey(String aesKey) { - this.aesKey = aesKey; - } - - @Override - public String getOauth2redirectUri() { - return this.oauth2redirectUri; - } - - public void setOauth2redirectUri(String oauth2redirectUri) { - this.oauth2redirectUri = oauth2redirectUri; - } - - @Override - public String getHttpProxyHost() { - return this.httpProxyHost; - } - - public void setHttpProxyHost(String httpProxyHost) { - this.httpProxyHost = httpProxyHost; - } - - @Override - public int getHttpProxyPort() { - return this.httpProxyPort; - } - - public void setHttpProxyPort(int httpProxyPort) { - this.httpProxyPort = httpProxyPort; - } - - @Override - public String getHttpProxyUsername() { - return this.httpProxyUsername; - } - - public void setHttpProxyUsername(String httpProxyUsername) { - this.httpProxyUsername = httpProxyUsername; - } - - @Override - public String getHttpProxyPassword() { - return this.httpProxyPassword; - } - - public void setHttpProxyPassword(String httpProxyPassword) { - this.httpProxyPassword = httpProxyPassword; - } - - @Override - public String toString() { - return ToStringUtils.toSimpleString(this); - } - - public void setPartnerId(String partnerId) { - this.partnerId = partnerId; - } - - public void setPartnerKey(String partnerKey) { - this.partnerKey = partnerKey; - } - - - public String getNotifyURL() { - return notifyURL; - } - - public void setNotifyURL(String notifyURL) { - this.notifyURL = notifyURL; - } - - public String getTradeType() { - return tradeType; - } - - public void setTradeType(String tradeType) { - this.tradeType = tradeType; - } - - @Override - public File getTmpDirFile() { - return this.tmpDirFile; - } - - public void setTmpDirFile(File tmpDirFile) { - this.tmpDirFile = tmpDirFile; - } - - @Override - public ApacheHttpClientBuilder getApacheHttpClientBuilder() { - return this.apacheHttpClientBuilder; - } - - public void setApacheHttpClientBuilder(ApacheHttpClientBuilder apacheHttpClientBuilder) { - this.apacheHttpClientBuilder = apacheHttpClientBuilder; - } - - @Override - public boolean autoRefreshToken() { - return true; + jedis.expire(CARDAPI_TICKET_KEY.concat(appId), 0); } public void setJedis(Jedis jedis) { - this.jedis = jedis; - } -} + this.jedis = jedis; + } +} \ No newline at end of file