| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -23,8 +23,8 @@ import org.slf4j.LoggerFactory; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import java.util.List; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import java.util.Map; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import java.util.concurrent.locks.Lock; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import java.util.concurrent.ConcurrentHashMap; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import java.util.concurrent.locks.Lock; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			/** | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 * @author <a href="https://github.com/007gzs">007</a> | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -158,12 +158,12 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Lock lock = this.getWxOpenConfigStorage().getComponentAccessTokenLock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        lock.lock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        try { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          if (StringUtils.equals(componentAccessToken, this.getWxOpenConfigStorage().getComponentAccessToken()){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          if (StringUtils.equals(componentAccessToken, this.getWxOpenConfigStorage().getComponentAccessToken())) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            this.getWxOpenConfigStorage().expireComponentAccessToken(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } catch (Exception ex) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          this.getWxOpenConfigStorage().expireComponentAccessToken(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          lock.unlock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -202,12 +202,12 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Lock lock = this.getWxOpenConfigStorage().getComponentAccessTokenLock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        lock.lock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        try { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          if (StringUtils.equals(componentAccessToken, this.getWxOpenConfigStorage().getComponentAccessToken()){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          if (StringUtils.equals(componentAccessToken, this.getWxOpenConfigStorage().getComponentAccessToken())) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            this.getWxOpenConfigStorage().expireComponentAccessToken(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } catch (Exception ex) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          this.getWxOpenConfigStorage().expireComponentAccessToken(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          lock.unlock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (this.getWxOpenConfigStorage().autoRefreshToken()) { | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -379,13 +379,13 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  @Override | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  public String getAuthorizerAccessToken(String appId, boolean forceRefresh) throws WxErrorException { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    WxOpenConfigStorage config = getWxOpenConfigStorage(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!config.isAuthorizerAccessTokenExpired(appId) && !forceRefresh){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!config.isAuthorizerAccessTokenExpired(appId) && !forceRefresh) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      return config.getAuthorizerAccessToken(appId); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    Lock lock = config.getWxMpConfigStorage(appId).getAccessTokenLock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    lock.lock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    try{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      if (!config.isAuthorizerAccessTokenExpired(appId) && !forceRefresh){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    try { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      if (!config.isAuthorizerAccessTokenExpired(appId) && !forceRefresh) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return config.getAuthorizerAccessToken(appId); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      JsonObject jsonObject = new JsonObject(); | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -397,7 +397,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      WxOpenAuthorizerAccessToken wxOpenAuthorizerAccessToken = WxOpenAuthorizerAccessToken.fromJson(responseContent); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      config.updateAuthorizerAccessToken(appId, wxOpenAuthorizerAccessToken); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      return config.getAuthorizerAccessToken(appId); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } finally { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      lock.unlock(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |