From b699cae11e1df6ccb8a37099dd38101862fb196e Mon Sep 17 00:00:00 2001 From: charitha Date: Wed, 22 Jan 2020 10:48:23 +0530 Subject: [PATCH] Fix login issue with user other than super admin just after starting the pack --- .../APIManagementProviderServiceImpl.java | 30 +++++++++---------- .../client/OAuthRequestInterceptor.java | 11 ++----- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java index d966234eba..7c1609304e 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/src/main/java/org/wso2/carbon/apimgt/application/extension/APIManagementProviderServiceImpl.java @@ -27,15 +27,13 @@ import org.wso2.carbon.apimgt.application.extension.exception.APIManagerExceptio import org.wso2.carbon.apimgt.application.extension.internal.APIApplicationManagerExtensionDataHolder; import org.wso2.carbon.apimgt.application.extension.util.APIManagerUtil; import org.wso2.carbon.apimgt.integration.client.OAuthRequestInterceptor; -import org.wso2.carbon.apimgt.integration.client.store.*; +import org.wso2.carbon.apimgt.integration.client.store.StoreClient; import org.wso2.carbon.apimgt.integration.generated.client.store.model.*; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.utils.multitenancy.MultitenantConstants; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * This class represents an implementation of APIManagementProviderService. @@ -53,24 +51,26 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext() .getTenantDomain(); try { - storeClient.getIndividualTier().tiersTierLevelTierNameGet(ApiApplicationConstants.DEFAULT_TIER, - APP_TIER_TYPE, - tenantDomain, CONTENT_TYPE, null, null); + APP_TIER_TYPE, + tenantDomain, CONTENT_TYPE, null, null); return true; } catch (FeignException e) { + log.error("Feign Exception", e); if (e.status() == 401) { OAuthRequestInterceptor oAuthRequestInterceptor = new OAuthRequestInterceptor(); String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); oAuthRequestInterceptor.removeToken(username, tenantDomain); try { storeClient.getIndividualTier().tiersTierLevelTierNameGet(ApiApplicationConstants.DEFAULT_TIER, - APP_TIER_TYPE,tenantDomain, CONTENT_TYPE, null, null); + APP_TIER_TYPE, tenantDomain, CONTENT_TYPE, null, null); } catch (FeignException ex) { log.error("Invalid Attempt : " + ex); - return false; } - } } + } + } catch (Exception e) { + log.error("APIs not ready", e); + } return false; } @@ -84,7 +84,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe if (applicationList.getList() != null && applicationList.getList().size() > 0) { ApplicationInfo applicationInfo = applicationList.getList().get(0); storeClient.getIndividualApplication().applicationsApplicationIdDelete(applicationInfo.getApplicationId(), - null, null); + null, null); } } @@ -93,9 +93,9 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe */ @Override public synchronized ApiApplicationKey generateAndRetrieveApplicationKeys(String applicationName, String tags[], - String keyType, String username, - boolean isAllowedAllDomains, String validityTime, - StoreClient sClient) throws APIManagerException { + String keyType, String username, + boolean isAllowedAllDomains, String validityTime, + StoreClient sClient) throws APIManagerException { StoreClient storeClient; @@ -227,7 +227,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe boolean isAllowedAllDomains, String validityTime) throws APIManagerException { - return this.generateAndRetrieveApplicationKeys(applicationName, tags, keyType, username, - isAllowedAllDomains, validityTime, null); + return this.generateAndRetrieveApplicationKeys(applicationName, tags, keyType, username, + isAllowedAllDomains, validityTime, null); } } diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/OAuthRequestInterceptor.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/OAuthRequestInterceptor.java index d1a77817f2..c3519912e3 100755 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/OAuthRequestInterceptor.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.integration.client/src/main/java/org/wso2/carbon/apimgt/integration/client/OAuthRequestInterceptor.java @@ -39,7 +39,6 @@ import org.wso2.carbon.identity.jwt.client.extension.JWTClient; import org.wso2.carbon.identity.jwt.client.extension.dto.AccessTokenInfo; import org.wso2.carbon.identity.jwt.client.extension.exception.JWTClientException; -import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -59,15 +58,13 @@ public class OAuthRequestInterceptor implements RequestInterceptor { private OAuthApplication oAuthApplication; private static Map tenantUserTokenMap = new ConcurrentHashMap<>(); private static final Log log = LogFactory.getLog(OAuthRequestInterceptor.class); - private String username; - private String password; /** * Creates an interceptor that authenticates all requests. */ public OAuthRequestInterceptor() { - username = APIMConfigReader.getInstance().getConfig().getUsername(); - password = APIMConfigReader.getInstance().getConfig().getPassword(); + String username = APIMConfigReader.getInstance().getConfig().getUsername(); + String password = APIMConfigReader.getInstance().getConfig().getPassword(); dcrClient = Feign.builder().client(new OkHttpClient(Utils.getSSLClient())).logger(new Slf4jLogger()) .logLevel(Logger.Level.FULL).requestInterceptor(new BasicAuthRequestInterceptor(username, password)) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) @@ -76,8 +73,6 @@ public class OAuthRequestInterceptor implements RequestInterceptor { } public OAuthRequestInterceptor(String username, String password) { - this.username = username; - this.password = password; dcrClient = Feign.builder().client(new OkHttpClient(Utils.getSSLClient())).logger(new Slf4jLogger()) .logLevel(Logger.Level.FULL).requestInterceptor(new BasicAuthRequestInterceptor(username, password)) .contract(new JAXRSContract()).encoder(new GsonEncoder()).decoder(new GsonDecoder()) @@ -93,7 +88,7 @@ public class OAuthRequestInterceptor implements RequestInterceptor { clientProfile.setClientName(APPLICATION_NAME); clientProfile.setCallbackUrl(""); clientProfile.setGrantType(GRANT_TYPES); - clientProfile.setOwner(username); + clientProfile.setOwner(APIMConfigReader.getInstance().getConfig().getUsername()); clientProfile.setSaasApp(true); oAuthApplication = dcrClient.register(clientProfile); }