From 1be0322c23b5e589a6bc12c2798010317629e6b4 Mon Sep 17 00:00:00 2001 From: arshardh Date: Wed, 26 Feb 2025 23:55:57 +0530 Subject: [PATCH] Fix Access token generator initialization --- .../wso2/carbon/apimgt/impl/utils/APIUtil.java | 4 ++-- .../apimgt/impl/utils/AccessTokenGenerator.java | 17 +++++------------ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java index d0ddbbff4a4f..e51c41a42541 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java +++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java @@ -11092,9 +11092,9 @@ private static CloseableHttpResponse executeAIRequest(HttpRequestBase request, S try { if (tokenEndpoint != null) { if (tokenGenerator == null) { - tokenGenerator = new AccessTokenGenerator(tokenEndpoint, key); + tokenGenerator = new AccessTokenGenerator(); } - String token = tokenGenerator.getAccessToken(); + String token = tokenGenerator.getAccessToken(tokenEndpoint, key); request.setHeader(APIConstants.AUTHORIZATION_HEADER_DEFAULT, APIConstants.AUTHORIZATION_BEARER + token); } else { diff --git a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/AccessTokenGenerator.java b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/AccessTokenGenerator.java index a521ce46c937..8f8d8a08dce6 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/AccessTokenGenerator.java +++ b/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/AccessTokenGenerator.java @@ -41,17 +41,9 @@ public class AccessTokenGenerator { private static final Log log = LogFactory.getLog(AccessTokenGenerator.class); - - private String tokenEndpoint; - private String authKey; private Map accessTokenInfoMap = new ConcurrentHashMap<>(); - public AccessTokenGenerator(String tokenEndpoint, String authKey) { - this.tokenEndpoint = tokenEndpoint; - this.authKey = authKey; - } - - public String getAccessToken() { + public String getAccessToken(String tokenEndpoint, String authKey) { AccessTokenInfo accessTokenInfo = accessTokenInfoMap.get(authKey); if (accessTokenInfo != null) { long expiryTime = accessTokenInfo.getIssuedTime() + accessTokenInfo.getValidityPeriod(); @@ -62,7 +54,7 @@ public String getAccessToken() { log.debug("Access token expired. New token requested"); } accessTokenInfoMap.remove(authKey); - accessTokenInfo = generateNewAccessToken(); + accessTokenInfo = generateNewAccessToken(tokenEndpoint, authKey); accessTokenInfoMap.put(authKey, accessTokenInfo); assert accessTokenInfo != null; return accessTokenInfo.getAccessToken(); @@ -73,16 +65,17 @@ public String getAccessToken() { return accessTokenInfo.getAccessToken(); } } else { - accessTokenInfo = generateNewAccessToken(); + accessTokenInfo = generateNewAccessToken(tokenEndpoint, authKey); if (accessTokenInfo != null) { accessTokenInfoMap.put(authKey, accessTokenInfo); return accessTokenInfo.getAccessToken(); } } return null; + } - private AccessTokenInfo generateNewAccessToken() { + private AccessTokenInfo generateNewAccessToken(String tokenEndpoint, String authKey) { try { URL oauthURL = new URL(tokenEndpoint); HttpPost request = new HttpPost(tokenEndpoint);