|  |  | @@ -7,7 +7,6 @@ import redis.clients.jedis.JedisPool; | 
		
	
		
			
			|  |  |  | * @author <a href="https://github.com/007gzs">007</a> | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage { | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | private final static String COMPONENT_VERIFY_TICKET_KEY = "wechat_component_verify_ticket:"; | 
		
	
		
			
			|  |  |  | private final static String COMPONENT_ACCESS_TOKEN_KEY = "wechat_component_access_token:"; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -16,7 +15,6 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage { | 
		
	
		
			
			|  |  |  | private final static String JSAPI_TICKET_KEY = "wechat_jsapi_ticket:"; | 
		
	
		
			
			|  |  |  | private final static String CARD_API_TICKET_KEY = "wechat_card_api_ticket:"; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | protected final JedisPool jedisPool; | 
		
	
		
			
			|  |  |  | private String componentVerifyTicketKey; | 
		
	
		
			
			|  |  |  | private String componentAccessTokenKey; | 
		
	
	
		
			
				|  |  | @@ -32,46 +30,46 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage { | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void setComponentAppId(String componentAppId) { | 
		
	
		
			
			|  |  |  | super.setComponentAppId(componentAppId); | 
		
	
		
			
			|  |  |  | componentVerifyTicketKey = COMPONENT_VERIFY_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | componentAccessTokenKey = COMPONENT_ACCESS_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | authorizerRefreshTokenKey = AUTHORIZER_REFRESH_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | authorizerAccessTokenKey = AUTHORIZER_ACCESS_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | jsapiTicketKey = JSAPI_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | cardApiTicket = CARD_API_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.componentVerifyTicketKey = COMPONENT_VERIFY_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.componentAccessTokenKey = COMPONENT_ACCESS_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.authorizerRefreshTokenKey = AUTHORIZER_REFRESH_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.authorizerAccessTokenKey = AUTHORIZER_ACCESS_TOKEN_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.jsapiTicketKey = JSAPI_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | this.cardApiTicket = CARD_API_TICKET_KEY.concat(componentAppId); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getComponentVerifyTicket() { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(componentVerifyTicketKey); | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(this.componentVerifyTicketKey); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void setComponentVerifyTicket(String componentVerifyTicket) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.set(componentVerifyTicketKey, componentVerifyTicket); | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.set(this.componentVerifyTicketKey, componentVerifyTicket); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getComponentAccessToken() { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(componentAccessTokenKey); | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(this.componentAccessTokenKey); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public boolean isComponentAccessTokenExpired() { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.ttl(componentAccessTokenKey) < 2; | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.ttl(this.componentAccessTokenKey) < 2; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void updateComponentAccessTokent(String componentAccessToken, int expiresInSeconds) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.setex(componentAccessTokenKey, expiresInSeconds - 200, componentAccessToken); | 
		
	
		
			
			|  |  |  | jedis.setex(this.componentAccessTokenKey, expiresInSeconds - 200, componentAccessToken); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -82,99 +80,98 @@ public class WxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage { | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getAuthorizerRefreshToken(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(getKey(authorizerRefreshTokenKey, appId)); | 
		
	
		
			
			|  |  |  | return jedis.get(this.getKey(this.authorizerRefreshTokenKey, appId)); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.set(getKey(authorizerRefreshTokenKey, appId), authorizerRefreshToken); | 
		
	
		
			
			|  |  |  | jedis.set(this.getKey(this.authorizerRefreshTokenKey, appId), authorizerRefreshToken); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getAuthorizerAccessToken(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(getKey(authorizerAccessTokenKey, appId)); | 
		
	
		
			
			|  |  |  | return jedis.get(this.getKey(this.authorizerAccessTokenKey, appId)); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public boolean isAuthorizerAccessTokenExpired(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.ttl(getKey(authorizerAccessTokenKey, appId)) < 2; | 
		
	
		
			
			|  |  |  | return jedis.ttl(this.getKey(this.authorizerAccessTokenKey, appId)) < 2; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void expireAuthorizerAccessToken(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.expire(getKey(authorizerAccessTokenKey, appId), 0); | 
		
	
		
			
			|  |  |  | jedis.expire(this.getKey(this.authorizerAccessTokenKey, appId), 0); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void updateAuthorizerAccessToken(String appId, String authorizerAccessToken, int expiresInSeconds) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.setex(getKey(authorizerAccessTokenKey, appId), expiresInSeconds - 200, authorizerAccessToken); | 
		
	
		
			
			|  |  |  | jedis.setex(this.getKey(this.authorizerAccessTokenKey, appId), expiresInSeconds - 200, authorizerAccessToken); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getJsapiTicket(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(getKey(jsapiTicketKey, appId)); | 
		
	
		
			
			|  |  |  | return jedis.get(this.getKey(this.jsapiTicketKey, appId)); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public boolean isJsapiTicketExpired(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.ttl(getKey(jsapiTicketKey, appId)) < 2; | 
		
	
		
			
			|  |  |  | return jedis.ttl(this.getKey(this.jsapiTicketKey, appId)) < 2; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void expireJsapiTicket(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.expire(getKey(jsapiTicketKey, appId), 0); | 
		
	
		
			
			|  |  |  | jedis.expire(this.getKey(this.jsapiTicketKey, appId), 0); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void updateJsapiTicket(String appId, String jsapiTicket, int expiresInSeconds) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.setex(getKey(jsapiTicketKey, appId), expiresInSeconds - 200, jsapiTicket); | 
		
	
		
			
			|  |  |  | jedis.setex(this.getKey(this.jsapiTicketKey, appId), expiresInSeconds - 200, jsapiTicket); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public String getCardApiTicket(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.get(getKey(jsapiTicketKey, appId)); | 
		
	
		
			
			|  |  |  | return jedis.get(this.getKey(this.cardApiTicket, appId)); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public boolean isCardApiTicketExpired(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | return jedis.ttl(getKey(cardApiTicket, appId)) < 2; | 
		
	
		
			
			|  |  |  | return jedis.ttl(this.getKey(this.cardApiTicket, appId)) < 2; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void expireCardApiTicket(String appId) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.expire(getKey(cardApiTicket, appId), 0); | 
		
	
		
			
			|  |  |  | jedis.expire(this.getKey(this.cardApiTicket, appId), 0); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | @Override | 
		
	
		
			
			|  |  |  | public void updateCardApiTicket(String appId, String cardApiTicket, int expiresInSeconds) { | 
		
	
		
			
			|  |  |  | try (Jedis jedis = this.jedisPool.getResource()) { | 
		
	
		
			
			|  |  |  | jedis.setex(getKey(cardApiTicket, appId), expiresInSeconds - 200, cardApiTicket); | 
		
	
		
			
			|  |  |  | jedis.setex(this.getKey(this.cardApiTicket, appId), expiresInSeconds - 200, cardApiTicket); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } |