mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Add requested changes
This commit is contained in:
parent
40a5b00f80
commit
f21ee97d81
@ -22,10 +22,8 @@ import io.entgra.device.mgt.core.apimgt.application.extension.APIManagementProvi
|
|||||||
import io.entgra.device.mgt.core.apimgt.application.extension.api.util.APIUtil;
|
import io.entgra.device.mgt.core.apimgt.application.extension.api.util.APIUtil;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.api.util.RegistrationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.api.util.RegistrationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.IdnAuthenticationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.IdnAuthenticationException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
|
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.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.exceptions.DeviceManagementException;
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.DeviceManagementException;
|
||||||
@ -66,12 +64,6 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
||||||
.getRealmConfiguration().getAdminUserName();
|
.getRealmConfiguration().getAdminUserName();
|
||||||
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username);
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username);
|
||||||
String password = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
|
||||||
.getRealmConfiguration().getAdminPassword();
|
|
||||||
|
|
||||||
IdnAuthenticationProfile idnAuthenticationProfile = new IdnAuthenticationProfile();
|
|
||||||
idnAuthenticationProfile.setUsername(username);
|
|
||||||
idnAuthenticationProfile.setPassword(password);
|
|
||||||
|
|
||||||
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
||||||
apiApplicationProfile.setApplicationName(applicationName);
|
apiApplicationProfile.setApplicationName(applicationName);
|
||||||
@ -81,8 +73,7 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
|
|
||||||
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
||||||
ApiApplicationKey apiApplicationKey =
|
ApiApplicationKey apiApplicationKey =
|
||||||
apiManagementProviderService.registerApiApplication(idnAuthenticationProfile,
|
apiManagementProviderService.registerApiApplication(apiApplicationProfile);
|
||||||
apiApplicationProfile);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(apiApplicationKey.toString()).build();
|
return Response.status(Response.Status.CREATED).entity(apiApplicationKey.toString()).build();
|
||||||
} catch (APIManagerException e) {
|
} catch (APIManagerException e) {
|
||||||
String msg = "Error occurred while registering an application '" + applicationName + "'";
|
String msg = "Error occurred while registering an application '" + applicationName + "'";
|
||||||
@ -96,7 +87,7 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
String msg = "Failed to retrieve the device service";
|
String msg = "Failed to retrieve the device service";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
} catch (IdnAuthenticationException | BadRequestException | UnexpectedResponseException e) {
|
} catch (BadRequestException | UnexpectedResponseException e) {
|
||||||
String msg = "Error encountered while registering api application";
|
String msg = "Error encountered while registering api application";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
@ -118,10 +109,6 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
}
|
}
|
||||||
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
APIManagementProviderService apiManagementProviderService = APIUtil.getAPIManagementProviderService();
|
||||||
|
|
||||||
IdnAuthenticationProfile idnAuthenticationProfile = new IdnAuthenticationProfile();
|
|
||||||
idnAuthenticationProfile.setUsername(registrationProfile.getUsername());
|
|
||||||
idnAuthenticationProfile.setPassword(registrationProfile.getPassword());
|
|
||||||
|
|
||||||
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
||||||
apiApplicationProfile.setApplicationName(registrationProfile.getApplicationName());
|
apiApplicationProfile.setApplicationName(registrationProfile.getApplicationName());
|
||||||
apiApplicationProfile.setTags(registrationProfile.getTags());
|
apiApplicationProfile.setTags(registrationProfile.getTags());
|
||||||
@ -129,13 +116,8 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
|
|||||||
apiApplicationProfile.setGrantTypes(String.join(" ", registrationProfile.getSupportedGrantTypes()));
|
apiApplicationProfile.setGrantTypes(String.join(" ", registrationProfile.getSupportedGrantTypes()));
|
||||||
|
|
||||||
ApiApplicationKey apiApplicationKey =
|
ApiApplicationKey apiApplicationKey =
|
||||||
apiManagementProviderService.registerApiApplication(idnAuthenticationProfile,
|
apiManagementProviderService.registerApiApplication(apiApplicationProfile);
|
||||||
apiApplicationProfile);
|
|
||||||
return Response.status(Response.Status.CREATED).entity(apiApplicationKey).build();
|
return Response.status(Response.Status.CREATED).entity(apiApplicationKey).build();
|
||||||
} catch (IdnAuthenticationException e) {
|
|
||||||
String msg = "Failed to authenticate the user " + registrationProfile.getUsername();
|
|
||||||
log.error(msg, e);
|
|
||||||
return Response.status(Response.Status.UNAUTHORIZED).entity(msg).build();
|
|
||||||
} catch (BadRequestException e) {
|
} catch (BadRequestException e) {
|
||||||
String msg =
|
String msg =
|
||||||
"Received bad request for registering api application " + registrationProfile.getApplicationName();
|
"Received bad request for registering api application " + registrationProfile.getApplicationName();
|
||||||
|
|||||||
@ -38,6 +38,7 @@ import java.io.OutputStream;
|
|||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
|
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
|
||||||
|
|
||||||
@ -47,7 +48,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
|
|||||||
public class GsonMessageBodyHandler implements MessageBodyWriter<Object>, MessageBodyReader<Object> {
|
public class GsonMessageBodyHandler implements MessageBodyWriter<Object>, MessageBodyReader<Object> {
|
||||||
|
|
||||||
private Gson gson;
|
private Gson gson;
|
||||||
private static final String UTF_8 = "UTF-8";
|
|
||||||
|
|
||||||
public boolean isReadable(Class<?> aClass, Type type, Annotation[] annotations, MediaType mediaType) {
|
public boolean isReadable(Class<?> aClass, Type type, Annotation[] annotations, MediaType mediaType) {
|
||||||
return true;
|
return true;
|
||||||
@ -65,12 +65,8 @@ public class GsonMessageBodyHandler implements MessageBodyWriter<Object>, Messag
|
|||||||
MultivaluedMap<String, String> stringStringMultivaluedMap, InputStream entityStream)
|
MultivaluedMap<String, String> stringStringMultivaluedMap, InputStream entityStream)
|
||||||
throws IOException, WebApplicationException {
|
throws IOException, WebApplicationException {
|
||||||
|
|
||||||
InputStreamReader reader = new InputStreamReader(entityStream, "UTF-8");
|
try (InputStreamReader reader = new InputStreamReader(entityStream, StandardCharsets.UTF_8)) {
|
||||||
|
|
||||||
try {
|
|
||||||
return getGson().fromJson(reader, type);
|
return getGson().fromJson(reader, type);
|
||||||
} finally {
|
|
||||||
reader.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,11 +82,8 @@ public class GsonMessageBodyHandler implements MessageBodyWriter<Object>, Messag
|
|||||||
MultivaluedMap<String, Object> stringObjectMultivaluedMap, OutputStream entityStream)
|
MultivaluedMap<String, Object> stringObjectMultivaluedMap, OutputStream entityStream)
|
||||||
throws IOException, WebApplicationException {
|
throws IOException, WebApplicationException {
|
||||||
|
|
||||||
OutputStreamWriter writer = new OutputStreamWriter(entityStream, UTF_8);
|
try (OutputStreamWriter writer = new OutputStreamWriter(entityStream, StandardCharsets.UTF_8)) {
|
||||||
try {
|
|
||||||
getGson().toJson(object, type, writer);
|
getGson().toJson(object, type, writer);
|
||||||
} finally {
|
|
||||||
writer.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,12 +37,12 @@
|
|||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>doAuthentication</param-name>
|
<param-name>doAuthentication</param-name>
|
||||||
<param-value>false</param-value>
|
<param-value>true</param-value>
|
||||||
</context-param>
|
</context-param>
|
||||||
<!--This is to support basic auth.-->
|
<!--This is to support basic auth.-->
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>basicAuth</param-name>
|
<param-name>basicAuth</param-name>
|
||||||
<param-value>false</param-value>
|
<param-value>true</param-value>
|
||||||
</context-param>
|
</context-param>
|
||||||
|
|
||||||
<!--publish to apim-->
|
<!--publish to apim-->
|
||||||
|
|||||||
@ -132,7 +132,9 @@
|
|||||||
<Bundle-Description>API Management Application Bundle</Bundle-Description>
|
<Bundle-Description>API Management Application Bundle</Bundle-Description>
|
||||||
<Private-Package>io.entgra.device.mgt.core.apimgt.application.extension.internal</Private-Package>
|
<Private-Package>io.entgra.device.mgt.core.apimgt.application.extension.internal</Private-Package>
|
||||||
<Import-Packages>
|
<Import-Packages>
|
||||||
com.google.gson.*;version="${google.gson.version}",
|
com.google.gson.Gson;version="${google.gson.version}",
|
||||||
|
com.google.gson.JsonArray;version="${google.gson.version}",
|
||||||
|
com.google.gson.JsonElement;version="${google.gson.version}",
|
||||||
io.entgra.device.mgt.core.apimgt.application.extension.bean,
|
io.entgra.device.mgt.core.apimgt.application.extension.bean,
|
||||||
io.entgra.device.mgt.core.apimgt.application.extension.dto,
|
io.entgra.device.mgt.core.apimgt.application.extension.dto,
|
||||||
io.entgra.device.mgt.core.apimgt.application.extension.exception,
|
io.entgra.device.mgt.core.apimgt.application.extension.exception,
|
||||||
|
|||||||
@ -19,12 +19,10 @@ package io.entgra.device.mgt.core.apimgt.application.extension;
|
|||||||
|
|
||||||
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.IdnAuthenticationProfile;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.IdnAuthenticationException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
|
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.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
||||||
|
|
||||||
@ -51,15 +49,20 @@ public interface APIManagementProviderService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Register API application base on {@link ApiApplicationProfile}
|
* Register API application base on {@link ApiApplicationProfile}
|
||||||
* @param idnAuthenticationProfile Application owner's authentication user details
|
|
||||||
* @param apiApplicationProfile {@link ApiApplicationProfile}
|
* @param apiApplicationProfile {@link ApiApplicationProfile}
|
||||||
* @return {@link ApiApplicationKey} result on a successful execution
|
* @return {@link ApiApplicationKey} result on a successful execution
|
||||||
* @throws IdnAuthenticationException Throws when authentication error occurred
|
|
||||||
* @throws APIManagerException Throws when error encountered while registering the application profile
|
* @throws APIManagerException Throws when error encountered while registering the application profile
|
||||||
* @throws BadRequestException Throws when the application profile contains invalid attributes
|
* @throws BadRequestException Throws when the application profile contains invalid attributes
|
||||||
* @throws UnexpectedResponseException Throws when unexpected response received from the REST API client
|
* @throws UnexpectedResponseException Throws when unexpected response received from the REST API client
|
||||||
*/
|
*/
|
||||||
ApiApplicationKey registerApiApplication(IdnAuthenticationProfile idnAuthenticationProfile,
|
ApiApplicationKey registerApiApplication(ApiApplicationProfile apiApplicationProfile)
|
||||||
ApiApplicationProfile apiApplicationProfile)
|
throws APIManagerException, BadRequestException, UnexpectedResponseException;
|
||||||
throws IdnAuthenticationException, APIManagerException, BadRequestException, UnexpectedResponseException;
|
|
||||||
|
/**
|
||||||
|
* Generate custom JWT token via extended JWT client
|
||||||
|
* @param tokenCreationProfile {@link TokenCreationProfile}
|
||||||
|
* @return Retrieve {@link Token} result on a successful execution
|
||||||
|
* @throws APIManagerException Throws when error occurred while retrieving the token
|
||||||
|
*/
|
||||||
|
Token getCustomToken(TokenCreationProfile tokenCreationProfile) throws APIManagerException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,13 +22,11 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.IdnAuthenticationProfile;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.constants.ApiApplicationConstants;
|
import io.entgra.device.mgt.core.apimgt.application.extension.constants.ApiApplicationConstants;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.IdnAuthenticationException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.internal.APIApplicationManagerExtensionDataHolder;
|
import io.entgra.device.mgt.core.apimgt.application.extension.internal.APIApplicationManagerExtensionDataHolder;
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.ConsumerRESTAPIServices;
|
import io.entgra.device.mgt.core.apimgt.extension.rest.api.ConsumerRESTAPIServices;
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.bean.APIMConsumer.APIInfo;
|
import io.entgra.device.mgt.core.apimgt.extension.rest.api.bean.APIMConsumer.APIInfo;
|
||||||
@ -39,11 +37,14 @@ import io.entgra.device.mgt.core.apimgt.extension.rest.api.bean.APIMConsumer.Sub
|
|||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
|
import io.entgra.device.mgt.core.apimgt.extension.rest.api.constants.Constants;
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.APIServicesException;
|
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.BadRequestException;
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.OAuthClientException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
import io.entgra.device.mgt.core.device.mgt.common.exceptions.MetadataManagementException;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.Metadata;
|
||||||
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.MetadataManagementService;
|
import io.entgra.device.mgt.core.device.mgt.common.metadata.mgt.MetadataManagementService;
|
||||||
|
import io.entgra.device.mgt.core.identity.jwt.client.extension.JWTClient;
|
||||||
|
import io.entgra.device.mgt.core.identity.jwt.client.extension.dto.AccessTokenInfo;
|
||||||
|
import io.entgra.device.mgt.core.identity.jwt.client.extension.exception.JWTClientException;
|
||||||
|
import io.entgra.device.mgt.core.identity.jwt.client.extension.service.JWTClientManagerService;
|
||||||
import okhttp3.Credentials;
|
import okhttp3.Credentials;
|
||||||
import okhttp3.MediaType;
|
import okhttp3.MediaType;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
@ -110,7 +111,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
|
|||||||
return requestBody;
|
return requestBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ApiApplicationKey registerApiApplication(ApiApplicationProfile apiApplicationProfile)
|
private static ApiApplicationKey createApiApplication(ApiApplicationProfile apiApplicationProfile)
|
||||||
throws APIManagerException, BadRequestException, UnexpectedResponseException {
|
throws APIManagerException, BadRequestException, UnexpectedResponseException {
|
||||||
if (apiApplicationProfile.getGrantTypes().contains("authorization_code")
|
if (apiApplicationProfile.getGrantTypes().contains("authorization_code")
|
||||||
&& StringUtils.isEmpty(apiApplicationProfile.getCallbackUrl())) {
|
&& StringUtils.isEmpty(apiApplicationProfile.getCallbackUrl())) {
|
||||||
@ -140,7 +141,10 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
|
|||||||
updateAndRetrieveApplicationKeys(applications.get(0), apiApplicationProfile, apis);
|
updateAndRetrieveApplicationKeys(applications.get(0), apiApplicationProfile, apis);
|
||||||
|
|
||||||
} catch (APIServicesException e) {
|
} catch (APIServicesException e) {
|
||||||
throw new RuntimeException(e);
|
String msg =
|
||||||
|
"Error encountered while creating API application : [ " + apiApplicationProfile.getApplicationName() + " ]";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new APIManagerException(msg, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -285,9 +289,8 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiApplicationKey registerApiApplication(IdnAuthenticationProfile idnAuthenticationProfile,
|
public ApiApplicationKey registerApiApplication(ApiApplicationProfile apiApplicationProfile) throws APIManagerException,
|
||||||
ApiApplicationProfile apiApplicationProfile)
|
BadRequestException, UnexpectedResponseException {
|
||||||
throws IdnAuthenticationException, APIManagerException, BadRequestException, UnexpectedResponseException {
|
|
||||||
String flowStartingDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
|
String flowStartingDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
|
||||||
MetadataManagementService metadataManagementService =
|
MetadataManagementService metadataManagementService =
|
||||||
APIApplicationManagerExtensionDataHolder.getInstance().getMetadataManagementService();
|
APIApplicationManagerExtensionDataHolder.getInstance().getMetadataManagementService();
|
||||||
@ -299,8 +302,10 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
|
|||||||
JsonArray tenants = gson.fromJson(metaData.getMetaValue(), JsonArray.class);
|
JsonArray tenants = gson.fromJson(metaData.getMetaValue(), JsonArray.class);
|
||||||
|
|
||||||
for (JsonElement tenant : tenants) {
|
for (JsonElement tenant : tenants) {
|
||||||
if (Objects.equals(tenant.getAsString(), idnAuthenticationProfile.getTenantDomain())) {
|
String currentTenantDomain =
|
||||||
flowStartingDomain = idnAuthenticationProfile.getTenantDomain();
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(true);
|
||||||
|
if (Objects.equals(tenant.getAsString(), currentTenantDomain)) {
|
||||||
|
flowStartingDomain = currentTenantDomain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,22 +320,41 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
|
|||||||
try {
|
try {
|
||||||
PrivilegedCarbonContext.startTenantFlow();
|
PrivilegedCarbonContext.startTenantFlow();
|
||||||
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(flowStartingDomain, true);
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(flowStartingDomain, true);
|
||||||
if (APIApplicationManagerExtensionDataHolder.getInstance().getIoAuthClientService().
|
return createApiApplication(apiApplicationProfile);
|
||||||
doAuthenticate(idnAuthenticationProfile.getUsername(), idnAuthenticationProfile.getPassword())) {
|
|
||||||
apiApplicationProfile.setOwner(idnAuthenticationProfile.getUsername());
|
|
||||||
return registerApiApplication(apiApplicationProfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new IdnAuthenticationException(
|
|
||||||
"Failed to authenticate the user : [ " + idnAuthenticationProfile.getUsername() + " ]");
|
|
||||||
|
|
||||||
} catch (OAuthClientException e) {
|
|
||||||
String msg =
|
|
||||||
"Error encountered while performing authentication for user : [ " + idnAuthenticationProfile.getUsername() + " ]";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new APIManagerException(msg, e);
|
|
||||||
} finally {
|
} finally {
|
||||||
PrivilegedCarbonContext.endTenantFlow();
|
PrivilegedCarbonContext.endTenantFlow();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Token getCustomToken(TokenCreationProfile tokenCreationProfile) throws APIManagerException {
|
||||||
|
JWTClientManagerService jwtClientManagerService =
|
||||||
|
APIApplicationManagerExtensionDataHolder.getInstance().getJwtClientManagerService();
|
||||||
|
try {
|
||||||
|
JWTClient jwtClient = jwtClientManagerService.getJWTClient();
|
||||||
|
AccessTokenInfo accessTokenInfo = jwtClient.getAccessToken(tokenCreationProfile.getBasicAuthUsername(),
|
||||||
|
tokenCreationProfile.getBasicAuthPassword(), tokenCreationProfile.getUsername(),
|
||||||
|
tokenCreationProfile.getScope());
|
||||||
|
|
||||||
|
if (accessTokenInfo == null) {
|
||||||
|
String msg = "Received a null token when generating a custom JWT token";
|
||||||
|
log.error(msg);
|
||||||
|
throw new APIManagerException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
Token token = new Token();
|
||||||
|
token.setAccess_token(accessTokenInfo.getAccessToken());
|
||||||
|
token.setRefresh_token(accessTokenInfo.getRefreshToken());
|
||||||
|
token.setToken_type(accessTokenInfo.getTokenType());
|
||||||
|
token.setScope(accessTokenInfo.getScopes());
|
||||||
|
token.setExpires_in(accessTokenInfo.getExpiresIn());
|
||||||
|
|
||||||
|
return token;
|
||||||
|
} catch (JWTClientException e) {
|
||||||
|
String msg = "Error encountered while acquiring custom JWT token";
|
||||||
|
log.error(msg, e);
|
||||||
|
throw new APIManagerException(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
* Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
@ -14,9 +14,10 @@
|
|||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.entgra.device.mgt.core.apimgt.application.extension.dto;
|
package io.entgra.device.mgt.core.apimgt.application.extension.bean;
|
||||||
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.constants.ApiApplicationConstants;
|
import io.entgra.device.mgt.core.apimgt.application.extension.constants.ApiApplicationConstants;
|
||||||
import org.json.simple.JSONObject;
|
import org.json.simple.JSONObject;
|
||||||
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.entgra.device.mgt.core.apimgt.application.extension.bean;
|
|
||||||
|
|
||||||
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
|
||||||
|
|
||||||
public class IdnAuthenticationProfile {
|
|
||||||
private String username;
|
|
||||||
private String password;
|
|
||||||
private String tenantDomain;
|
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsername(String username) {
|
|
||||||
this.username = username;
|
|
||||||
String []usernameParts = this.username.split("@(?=[^@]*$)");
|
|
||||||
if (usernameParts.length == 2) {
|
|
||||||
this.tenantDomain = usernameParts[usernameParts.length - 1];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.tenantDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTenantDomain() {
|
|
||||||
return tenantDomain;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTenantDomain(String tenantDomain) {
|
|
||||||
this.tenantDomain = tenantDomain;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.entgra.device.mgt.core.apimgt.application.extension.exception;
|
|
||||||
|
|
||||||
public class IdnAuthenticationException extends Exception {
|
|
||||||
public IdnAuthenticationException(String msg) {
|
|
||||||
super(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -38,14 +38,4 @@ public interface IOAuthClientService {
|
|||||||
*/
|
*/
|
||||||
OAuthClientResponse execute(Request request) throws OAuthClientException, BadRequestException,
|
OAuthClientResponse execute(Request request) throws OAuthClientException, BadRequestException,
|
||||||
UnexpectedResponseException;
|
UnexpectedResponseException;
|
||||||
|
|
||||||
/**
|
|
||||||
* Use to authenticate user against Identify Server
|
|
||||||
*
|
|
||||||
* @param username Username of the user
|
|
||||||
* @param password Password of the User
|
|
||||||
* @return Returns true if the requested user is authenticated user, otherwise false
|
|
||||||
* @throws OAuthClientException Throws when error encountered while authenticating
|
|
||||||
*/
|
|
||||||
boolean doAuthenticate(String username, String password) throws OAuthClientException;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -146,64 +146,6 @@ public class OAuthClient implements IOAuthClientService {
|
|||||||
return oAuthClientResponse;
|
return oAuthClientResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean doAuthenticate(String username, String password) throws OAuthClientException {
|
|
||||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
|
||||||
|
|
||||||
CacheWrapper cacheWrapper = cache.computeIfAbsent(tenantDomain, key -> {
|
|
||||||
CacheWrapper constructedWrapper = null;
|
|
||||||
try {
|
|
||||||
Keys keys = idnDynamicClientRegistration();
|
|
||||||
Tokens tokens = idnTokenGeneration(keys);
|
|
||||||
constructedWrapper = new CacheWrapper(keys, tokens);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("Error encountered while updating the cache", e);
|
|
||||||
}
|
|
||||||
return constructedWrapper;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (cacheWrapper != null) {
|
|
||||||
String tokenRequestJsonStr = (new JSONObject())
|
|
||||||
.put("grant_type", Constants.PASSWORD_GRANT_TYPE)
|
|
||||||
.put("username", username)
|
|
||||||
.put("password", password)
|
|
||||||
.put("scope", Constants.SCOPES)
|
|
||||||
.put("callbackUrl", Constants.PLACEHOLDING_CALLBACK_URL)
|
|
||||||
.toString();
|
|
||||||
|
|
||||||
RequestBody requestBody = RequestBody.Companion.create(tokenRequestJsonStr, JSON);
|
|
||||||
Request tokenRequest = new Request.Builder()
|
|
||||||
.url(tokenEndpoint)
|
|
||||||
.addHeader(Constants.AUTHORIZATION_HEADER_NAME, Credentials.basic(cacheWrapper.keys.consumerKey,
|
|
||||||
cacheWrapper.keys.consumerSecret))
|
|
||||||
.post(requestBody)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
try (Response response = client.newCall(tokenRequest).execute()) {
|
|
||||||
if (response.isSuccessful()) {
|
|
||||||
Tokens tokens = mapTokens(response.body());
|
|
||||||
if (tokens.accessToken != null) {
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.info("IDN authentication success for user : [ " + username + " ]");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
String msg =
|
|
||||||
"Error encountered while performing IDN authentication for received user : [ " + username +
|
|
||||||
" ]";
|
|
||||||
log.error(msg, e);
|
|
||||||
throw new OAuthClientException(msg, e);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (log.isDebugEnabled()) {
|
|
||||||
log.info("IDN authentication failed for user : [ " + username + " ]");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamic client registration will be handled through here. These clients can be located under carbon console's
|
* Dynamic client registration will be handled through here. These clients can be located under carbon console's
|
||||||
* service provider section in respective tenants.
|
* service provider section in respective tenants.
|
||||||
|
|||||||
@ -67,7 +67,7 @@ import org.apache.http.impl.client.HttpClients;
|
|||||||
import org.apache.http.ssl.TrustStrategy;
|
import org.apache.http.ssl.TrustStrategy;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.exception.ApplicationManagementException;
|
import io.entgra.device.mgt.core.application.mgt.common.exception.ApplicationManagementException;
|
||||||
|
|||||||
@ -20,10 +20,8 @@ package io.entgra.device.mgt.core.application.mgt.core.util;
|
|||||||
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.APIManagementProviderService;
|
import io.entgra.device.mgt.core.apimgt.application.extension.APIManagementProviderService;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.IdnAuthenticationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.IdnAuthenticationException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException;
|
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.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
||||||
import io.entgra.device.mgt.core.application.mgt.common.dto.ApiRegistrationProfile;
|
import io.entgra.device.mgt.core.application.mgt.common.dto.ApiRegistrationProfile;
|
||||||
@ -63,23 +61,17 @@ public class OAuthUtils {
|
|||||||
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
||||||
.getRealmConfiguration().getAdminUserName();
|
.getRealmConfiguration().getAdminUserName();
|
||||||
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username);
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(username);
|
||||||
String password = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
|
||||||
.getRealmConfiguration().getAdminPassword();
|
|
||||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||||
APIManagementProviderService apiManagementProviderService = (APIManagementProviderService) ctx.
|
APIManagementProviderService apiManagementProviderService = (APIManagementProviderService) ctx.
|
||||||
getOSGiService(APIManagementProviderService.class, null);
|
getOSGiService(APIManagementProviderService.class, null);
|
||||||
|
|
||||||
IdnAuthenticationProfile idnAuthenticationProfile = new IdnAuthenticationProfile();
|
|
||||||
idnAuthenticationProfile.setUsername(username);
|
|
||||||
idnAuthenticationProfile.setPassword(password);
|
|
||||||
|
|
||||||
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
||||||
apiApplicationProfile.setApplicationName(registrationProfile.getApplicationName());
|
apiApplicationProfile.setApplicationName(registrationProfile.getApplicationName());
|
||||||
apiApplicationProfile.setTags(registrationProfile.getTags());
|
apiApplicationProfile.setTags(registrationProfile.getTags());
|
||||||
apiApplicationProfile.setGrantTypes("refresh_token client_credentials password");
|
apiApplicationProfile.setGrantTypes("refresh_token client_credentials password");
|
||||||
apiApplicationKeyInfo = apiManagementProviderService.
|
apiApplicationKeyInfo = apiManagementProviderService.
|
||||||
registerApiApplication(idnAuthenticationProfile, apiApplicationProfile);
|
registerApiApplication(apiApplicationProfile);
|
||||||
} catch (IdnAuthenticationException | BadRequestException | UnexpectedResponseException e) {
|
} catch (BadRequestException | UnexpectedResponseException e) {
|
||||||
String msg = "Error encountered while registering api application";
|
String msg = "Error encountered while registering api application";
|
||||||
log.error(msg);
|
log.error(msg);
|
||||||
throw new APIManagerException(msg, e);
|
throw new APIManagerException(msg, e);
|
||||||
|
|||||||
@ -21,10 +21,8 @@ package io.entgra.device.mgt.core.device.mgt.api.jaxrs.service.impl;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.APIManagementProviderService;
|
import io.entgra.device.mgt.core.apimgt.application.extension.APIManagementProviderService;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.IdnAuthenticationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.ApiApplicationKey;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.dto.ApiApplicationKey;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
import io.entgra.device.mgt.core.apimgt.application.extension.exception.APIManagerException;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.exception.IdnAuthenticationException;
|
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.Token;
|
||||||
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
import io.entgra.device.mgt.core.apimgt.application.extension.bean.TokenCreationProfile;
|
||||||
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
import io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.UnexpectedResponseException;
|
||||||
@ -956,28 +954,13 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
|
|||||||
try {
|
try {
|
||||||
ApiApplicationKey apiApplicationKey;
|
ApiApplicationKey apiApplicationKey;
|
||||||
try {
|
try {
|
||||||
String adminUserName = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
|
||||||
.getRealmConfiguration().getAdminUserName();
|
|
||||||
String adminPassword = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUserRealm()
|
|
||||||
.getRealmConfiguration().getAdminPassword();
|
|
||||||
|
|
||||||
IdnAuthenticationProfile idnAuthenticationProfile = new IdnAuthenticationProfile();
|
|
||||||
idnAuthenticationProfile.setUsername(adminUserName);
|
|
||||||
idnAuthenticationProfile.setPassword(adminPassword);
|
|
||||||
|
|
||||||
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
ApiApplicationProfile apiApplicationProfile = new ApiApplicationProfile();
|
||||||
apiApplicationProfile.setApplicationName(applicationName);
|
apiApplicationProfile.setApplicationName(applicationName);
|
||||||
apiApplicationProfile.setTags(new String[] {"device_management"});
|
apiApplicationProfile.setTags(new String[] {"device_management"});
|
||||||
apiApplicationProfile.setGrantTypes("client_credentials password refresh_token");
|
apiApplicationProfile.setGrantTypes("client_credentials password refresh_token");
|
||||||
|
|
||||||
apiApplicationKey = apiManagementProviderService.registerApiApplication(idnAuthenticationProfile, apiApplicationProfile);
|
apiApplicationKey = apiManagementProviderService.registerApiApplication(apiApplicationProfile);
|
||||||
} catch (UserStoreException e) {
|
} catch (io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException |
|
||||||
String msg = "Failed to retrieve the tenant" + tenantDomain + "'";
|
|
||||||
log.error(msg, e);
|
|
||||||
return Response.serverError().entity(
|
|
||||||
new ErrorResponse.ErrorResponseBuilder().setMessage(msg).build()).build();
|
|
||||||
} catch (IdnAuthenticationException |
|
|
||||||
io.entgra.device.mgt.core.apimgt.extension.rest.api.exceptions.BadRequestException |
|
|
||||||
UnexpectedResponseException e) {
|
UnexpectedResponseException e) {
|
||||||
String msg = "Error encountered while registering api application";
|
String msg = "Error encountered while registering api application";
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user