Reuse AccessTokenInfo class #290

Closed
pasindu wants to merge 2 commits from pasindu:Improvement#10457 into master

@ -84,6 +84,11 @@
<artifactId>okhttp</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.identity.jwt.client.extension</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
@ -121,7 +126,9 @@
org.wso2.carbon.apimgt.impl;version="${carbon.api.mgt.version.range}",
org.wso2.carbon.apimgt.impl.utils;version="${carbon.api.mgt.version.range}",
org.wso2.carbon.apimgt.impl.internal;version="${carbon.api.mgt.version.range}",
org.json
org.json,
io.entgra.device.mgt.core.identity.jwt.client.extension,
io.entgra.device.mgt.core.identity.jwt.client.extension.dto
</Import-Package>
</instructions>
</configuration>

@ -19,15 +19,19 @@
package io.entgra.device.mgt.core.apimgt.extension.rest.api;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
public interface APIApplicationServices {
APIApplicationKey createAndRetrieveApplicationCredentials() throws APIServicesException;
AccessTokenInfo generateAccessTokenFromRegisteredApplication(String clientId, String clientSecret) throws APIServicesException;
AccessTokenInfo generateAccessTokenFromRegisteredApplication(String clientId, String clientSecret)
throws APIServicesException, BadRequestException, UnexpectedResponseException;
AccessTokenInfo generateAccessTokenFromRefreshToken(String refreshToken, String clientId, String clientSecret) throws APIServicesException;
AccessTokenInfo generateAccessTokenFromRefreshToken(String refreshToken, String clientId, String clientSecret)
throws APIServicesException, BadRequestException, UnexpectedResponseException;
}

@ -19,11 +19,17 @@
package io.entgra.device.mgt.core.apimgt.extension.rest.api;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIInfo.Documentation;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
import org.apache.commons.httpclient.HttpStatus;
import org.json.JSONArray;
import org.json.JSONObject;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.util.HttpsTrustManagerUtils;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
@ -35,6 +41,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.apimgt.impl.APIManagerConfiguration;
import org.wso2.carbon.apimgt.impl.internal.ServiceReferenceHolder;
import java.io.IOException;
public class APIApplicationServicesImpl implements APIApplicationServices {
@ -80,7 +87,7 @@ public class APIApplicationServicesImpl implements APIApplicationServices {
@Override
public AccessTokenInfo generateAccessTokenFromRegisteredApplication(String consumerKey, String consumerSecret)
throws APIServicesException {
throws APIServicesException, BadRequestException, UnexpectedResponseException {
String userName = config.getFirstProperty(Constants.SERVER_USER);
String userPassword = config.getFirstProperty(Constants.SERVER_PASSWORD);
@ -95,7 +102,7 @@ public class APIApplicationServicesImpl implements APIApplicationServices {
@Override
public AccessTokenInfo generateAccessTokenFromRefreshToken(String refreshToken, String consumerKey, String consumerSecret)
throws APIServicesException {
throws APIServicesException, BadRequestException, UnexpectedResponseException {
JSONObject params = new JSONObject();
params.put(Constants.GRANT_TYPE_PARAM_NAME, Constants.REFRESH_TOKEN_GRANT_TYPE);
@ -105,7 +112,7 @@ public class APIApplicationServicesImpl implements APIApplicationServices {
}
public AccessTokenInfo getToken(JSONObject nameValuePairs, String clientId, String clientSecret)
throws APIServicesException {
throws APIServicesException, UnexpectedResponseException, BadRequestException {
String tokenEndPoint = config.getFirstProperty(Constants.TOKE_END_POINT);
@ -118,7 +125,23 @@ public class APIApplicationServicesImpl implements APIApplicationServices {
try {
Response response = client.newCall(request).execute();
return gson.fromJson(response.body().string(), AccessTokenInfo.class);
AccessTokenInfo accessTokenInfo = new AccessTokenInfo();
if (HttpStatus.SC_OK == response.code()) {
JSONObject responseObject = new JSONObject(response.body().string());
accessTokenInfo.setAccessToken(responseObject.getString("access_token"));
accessTokenInfo.setRefreshToken(responseObject.getString("refresh_token"));
accessTokenInfo.setScopes(responseObject.getString("scope"));
accessTokenInfo.setTokenType(responseObject.getString("token_type"));
accessTokenInfo.setExpiresIn(responseObject.getInt("expires_in"));
return accessTokenInfo;
} else if (HttpStatus.SC_BAD_REQUEST == response.code()) {
String msg = "Bad Request, Invalid request body";
log.error(msg);
throw new BadRequestException(msg);
} else {
String msg = "Response : " + response.code() + response.body();
throw new UnexpectedResponseException(msg);
}
} catch (IOException e) {
msg = "Error occurred while processing the response";
log.error(msg, e);

@ -20,11 +20,10 @@ package io.entgra.device.mgt.core.apimgt.extension.rest.api;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIInfo.*;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
import org.json.JSONObject;
import java.util.List;

@ -22,7 +22,7 @@ import com.google.gson.Gson;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIInfo.*;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
@ -57,7 +57,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getAllScopesUrl)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -69,7 +69,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getScopes(apiApplicationKey, refreshedAccessToken);
@ -99,7 +99,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getScopeUrl)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.head()
.build();
try {
@ -109,7 +109,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return isSharedScopeNameExists(apiApplicationKey, refreshedAccessToken, key);
@ -156,7 +156,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(addNewSharedScopeEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -167,7 +167,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addNewSharedScope(apiApplicationKey, refreshedAccessToken, scope);
@ -210,7 +210,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(updateScopeUrl)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.put(requestBody)
.build();
@ -221,7 +221,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return updateSharedScope(apiApplicationKey, refreshedAccessToken, scope);
@ -248,7 +248,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getAllApi)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -259,7 +259,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getApi(apiApplicationKey, refreshedAccessToken, apiUuid);
@ -286,7 +286,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getAllApis)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -298,7 +298,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getApis(apiApplicationKey, refreshedAccessToken);
@ -426,7 +426,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(addAPIEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -437,7 +437,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addAPI(apiApplicationKey, refreshedAccessToken, api);
@ -565,7 +565,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(updateAPIEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.put(requestBody)
.build();
@ -576,7 +576,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return updateApi(apiApplicationKey, refreshedAccessToken, api);
@ -611,7 +611,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
.url(saveAsyncAPI)
.addHeader(Constants.HEADER_CONTENT_TYPE, "multipart/form-data")
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.put(requestBody)
.build();
@ -622,7 +622,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return saveAsyncApiDefinition(apiApplicationKey, refreshedAccessToken, uuid, asyncApiDefinition);
@ -651,7 +651,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getAPIMediationEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -663,7 +663,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getAllApiSpecificMediationPolicies(apiApplicationKey, refreshedAccessToken, apiUuid);
@ -699,7 +699,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
.url(addAPIMediation)
.addHeader(Constants.HEADER_CONTENT_TYPE, "multipart/form-data")
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -710,7 +710,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addApiSpecificMediationPolicy(apiApplicationKey, refreshedAccessToken, uuid, mediation);
@ -740,7 +740,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(deleteApiMediationEndPOint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.delete()
.build();
@ -751,7 +751,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return deleteApiSpecificMediationPolicy(apiApplicationKey, refreshedAccessToken, uuid, mediation);
@ -783,7 +783,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(changeAPIStatusEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -794,7 +794,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return changeLifeCycleStatus(apiApplicationKey, refreshedAccessToken, uuid, action);
@ -824,7 +824,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getAPIRevisionsEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -836,7 +836,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getAPIRevisions(apiApplicationKey, refreshedAccessToken, uuid, deploymentStatus);
@ -868,7 +868,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(addNewScope)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -879,7 +879,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addAPIRevision(apiApplicationKey, refreshedAccessToken, apiRevision);
@ -917,7 +917,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(deployAPIRevisionEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -928,7 +928,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return deployAPIRevision(apiApplicationKey, refreshedAccessToken, uuid, apiRevisionId,
@ -969,7 +969,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(undeployAPIRevisionEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -980,7 +980,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return undeployAPIRevisionDeployment(apiApplicationKey, refreshedAccessToken, apiRevisionDeployment, uuid);
@ -1010,7 +1010,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(apiRevisionEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.delete()
.build();
@ -1021,7 +1021,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return deleteAPIRevision(apiApplicationKey, refreshedAccessToken, apiRevision, uuid);
@ -1049,7 +1049,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getDocumentationsEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.get()
.build();
@ -1061,7 +1061,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return getDocumentations(apiApplicationKey, refreshedAccessToken, uuid);
@ -1090,7 +1090,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
Request request = new Request.Builder()
.url(getDocumentationsEndPoint)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.delete()
.build();
@ -1101,7 +1101,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return deleteDocumentations(apiApplicationKey, refreshedAccessToken, uuid, documentID);
@ -1141,7 +1141,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
.url(addNewScope)
.addHeader(Constants.HEADER_CONTENT_TYPE, Constants.APPLICATION_JSON)
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -1152,7 +1152,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addDocumentation(apiApplicationKey, refreshedAccessToken, uuid, documentation);
@ -1187,7 +1187,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
.url(addDocumentationContentEndPoint)
.addHeader(Constants.HEADER_CONTENT_TYPE, "multipart/form-data")
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Constants.AUTHORIZATION_HEADER_PREFIX_BEARER
+ accessTokenInfo.getAccess_token())
+ accessTokenInfo.getAccessToken())
.post(requestBody)
.build();
@ -1198,7 +1198,7 @@ public class PublisherRESTAPIServicesImpl implements PublisherRESTAPIServices {
} else if (HttpStatus.SC_UNAUTHORIZED == response.code()) {
APIApplicationServices apiApplicationServices = new APIApplicationServicesImpl();
AccessTokenInfo refreshedAccessToken = apiApplicationServices.
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefresh_token(),
generateAccessTokenFromRefreshToken(accessTokenInfo.getRefreshToken(),
apiApplicationKey.getClientId(), apiApplicationKey.getClientSecret());
//TODO: max attempt count
return addDocumentationContent(apiApplicationKey, refreshedAccessToken, apiUuid, docId, docContent);

@ -134,6 +134,11 @@
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.device.mgt.core</artifactId>
</dependency>
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.identity.jwt.client.extension</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
@ -205,7 +210,10 @@
org.wso2.carbon.utils;version="4.6",
org.wso2.carbon.utils.multitenancy;version="4.6",
org.apache.commons.lang,
org.json
org.json,
io.entgra.device.mgt.core.identity.jwt.client.extension,
io.entgra.device.mgt.core.identity.jwt.client.extension.dto,
io.entgra.device.mgt.core.identity.jwt.client.extension.exception
</Import-Package>
<Embed-Dependency>
jsr311-api;scope=compile|runtime;inline=false

@ -26,7 +26,7 @@ import io.entgra.device.mgt.core.apimgt.extension.rest.api.PublisherRESTAPIServi
import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIApplicationKey;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.APIInfo.*;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
@ -119,7 +119,15 @@ public class APIPublisherServiceImpl implements APIPublisherService {
} catch (APIServicesException e) {
String errorMsg = "Error occurred while generating the API application";
log.error(errorMsg, e);
throw new APIManagerPublisherException(e);
throw new APIManagerPublisherException(errorMsg, e);
} catch (BadRequestException e) {
String errorMsg = "Error while calling APIs";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
} catch (UnexpectedResponseException e) {
String errorMsg = "Unexpected response from the server";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
}
try {
@ -455,7 +463,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
PublisherRESTAPIServices publisherRESTAPIServices = new PublisherRESTAPIServicesImpl();
Scope scope = new Scope();
for (DefaultPermission defaultPermission: defaultPermissions.getDefaultPermissions()) {
for (DefaultPermission defaultPermission : defaultPermissions.getDefaultPermissions()) {
//todo check whether scope is available or not
ScopeMapping scopeMapping = defaultPermission.getScopeMapping();
@ -493,7 +501,16 @@ public class APIPublisherServiceImpl implements APIPublisherService {
String errorMsg = "Error occurred while generating the API application";
log.error(errorMsg, e);
throw new APIManagerPublisherException(e);
} catch (BadRequestException e) {
String errorMsg = "Error while calling APIs";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
} catch (UnexpectedResponseException e) {
String errorMsg = "Unexpected response from the server";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
}
UserStoreManager userStoreManager;
try {
@ -627,6 +644,14 @@ public class APIPublisherServiceImpl implements APIPublisherService {
String errorMsg = "Error occurred while generating the API application";
log.error(errorMsg, e);
throw new APIManagerPublisherException(e);
} catch (BadRequestException e) {
String errorMsg = "Error while calling APIs";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
} catch (UnexpectedResponseException e) {
String errorMsg = "Unexpected response from the server";
log.error(errorMsg, e);
throw new APIManagerPublisherException(errorMsg, e);
}
try {
@ -677,8 +702,8 @@ public class APIPublisherServiceImpl implements APIPublisherService {
* @throws APIManagerPublisherException If the method receives invalid permission to update.
*/
private void updateScopes (String roleName, PublisherRESTAPIServices publisherRESTAPIServices,
APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo,
Scope[] scopeList, String[] permissions, Map<String, String> permScopeMap, boolean removingPermissions )
APIApplicationKey apiApplicationKey, AccessTokenInfo accessTokenInfo,
Scope[] scopeList, String[] permissions, Map<String, String> permScopeMap, boolean removingPermissions)
throws APIManagerPublisherException {
for (String permission : permissions) {
String scopeValue = permScopeMap.get(permission);
@ -722,7 +747,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
// todo: come to this level means, that scope is removed from API, but haven't removed from the scope-role-permission-mappings list
log.warn(scope.getName() + " not available as shared scope");
}
} catch (APIServicesException | BadRequestException | UnexpectedResponseException e) {
} catch (APIServicesException | BadRequestException | UnexpectedResponseException e) {
log.error("Error occurred while updating role scope mapping via APIM REST endpoint.", e);
}
break;

Loading…
Cancel
Save