use of org.wso2.carbon.apimgt.rest.api.admin.dto.WorkflowDTO in project carbon-apimgt by wso2.
the class AbstractApplicationRegistrationWorkflowExecutor method complete.
public WorkflowResponse complete(WorkflowDTO workFlowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.debug("Completing AbstractApplicationRegistrationWorkflowExecutor...");
}
super.complete(workFlowDTO);
ApiMgtDAO dao = ApiMgtDAO.getInstance();
try {
String status = null;
if ("CREATED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.AppRegistrationStatus.REGISTRATION_CREATED;
} else if ("REJECTED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.AppRegistrationStatus.REGISTRATION_REJECTED;
} else if ("APPROVED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.AppRegistrationStatus.REGISTRATION_APPROVED;
}
ApplicationRegistrationWorkflowDTO regWorkFlowDTO;
if (workFlowDTO instanceof ApplicationRegistrationWorkflowDTO) {
regWorkFlowDTO = (ApplicationRegistrationWorkflowDTO) workFlowDTO;
} else {
String message = "Invalid workflow type found";
log.error(message);
throw new WorkflowException(message);
}
dao.populateAppRegistrationWorkflowDTO(regWorkFlowDTO);
dao.updateApplicationRegistration(status, regWorkFlowDTO.getKeyType(), regWorkFlowDTO.getApplication().getId(), regWorkFlowDTO.getKeyManager());
} catch (APIManagementException e) {
log.error("Error while completing Application Registration entry.", e);
throw new WorkflowException("Error while completing Application Registration entry.", e);
}
return new GeneralWorkflowResponse();
}
use of org.wso2.carbon.apimgt.rest.api.admin.dto.WorkflowDTO in project carbon-apimgt by wso2.
the class AbstractApplicationRegistrationWorkflowExecutor method dogenerateKeysForApplication.
public static void dogenerateKeysForApplication(ApplicationRegistrationWorkflowDTO workflowDTO) throws APIManagementException {
log.debug("Registering Application and creating an Access Token... ");
Application application = workflowDTO.getApplication();
Subscriber subscriber = application.getSubscriber();
ApiMgtDAO dao = ApiMgtDAO.getInstance();
if (subscriber == null || workflowDTO.getAllowedDomains() == null) {
dao.populateAppRegistrationWorkflowDTO(workflowDTO);
}
try {
// get new key manager
// Here the default flow is set expecting an ID as the keymanager as this flow only involves new applications
String keyManagerId = workflowDTO.getKeyManager();
KeyManagerConfigurationDTO km = dao.getKeyManagerConfigurationByUUID(keyManagerId);
String tenantDomain = km.getOrganization();
String keyManagerName = km.getName();
KeyManager keyManager = KeyManagerHolder.getKeyManagerInstance(tenantDomain, keyManagerName);
if (keyManager == null) {
throw new APIManagementException("Key Manager " + keyManagerName + " not configured");
}
workflowDTO.getAppInfoDTO().getOAuthApplicationInfo().setClientName(application.getName());
// set applications attributes to the oAuthApplicationInfo
workflowDTO.getAppInfoDTO().getOAuthApplicationInfo().putAllAppAttributes(application.getApplicationAttributes());
// createApplication on oAuthorization server.
OAuthApplicationInfo oAuthApplication = keyManager.createApplication(workflowDTO.getAppInfoDTO());
// update associateApplication
ApplicationUtils.updateOAuthAppAssociation(application, workflowDTO.getKeyType(), oAuthApplication, keyManagerId);
// change create application status in to completed.
dao.updateApplicationRegistration(APIConstants.AppRegistrationStatus.REGISTRATION_COMPLETED, workflowDTO.getKeyType(), workflowDTO.getApplication().getId(), keyManagerId);
workflowDTO.setApplicationInfo(oAuthApplication);
AccessTokenInfo tokenInfo;
Object enableTokenGeneration = keyManager.getKeyManagerConfiguration().getParameter(APIConstants.KeyManager.ENABLE_TOKEN_GENERATION);
if (enableTokenGeneration != null && (Boolean) enableTokenGeneration && oAuthApplication.getJsonString().contains(APIConstants.GRANT_TYPE_CLIENT_CREDENTIALS)) {
AccessTokenRequest tokenRequest = ApplicationUtils.createAccessTokenRequest(keyManager, oAuthApplication, null);
tokenInfo = keyManager.getNewApplicationAccessToken(tokenRequest);
} else {
tokenInfo = new AccessTokenInfo();
tokenInfo.setAccessToken("");
tokenInfo.setValidityPeriod(0L);
String[] noScopes = new String[] { "N/A" };
tokenInfo.setScope(noScopes);
oAuthApplication.addParameter("tokenScope", Arrays.toString(noScopes));
}
workflowDTO.setAccessTokenInfo(tokenInfo);
} catch (Exception e) {
APIUtil.handleException("Error occurred while executing SubscriberKeyMgtClient.", e);
}
}
use of org.wso2.carbon.apimgt.rest.api.admin.dto.WorkflowDTO in project carbon-apimgt by wso2.
the class ApplicationCreationSimpleWorkflowExecutor method complete.
/**
* Complete the external process status
* Based on the workflow status we will update the status column of the
* Application table
*
* @param workFlowDTO - WorkflowDTO
*/
public WorkflowResponse complete(WorkflowDTO workFlowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.info("Complete Application creation Workflow..");
}
String status = null;
if ("CREATED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.ApplicationStatus.APPLICATION_CREATED;
} else if ("REJECTED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.ApplicationStatus.APPLICATION_REJECTED;
} else if ("APPROVED".equals(workFlowDTO.getStatus().toString())) {
status = APIConstants.ApplicationStatus.APPLICATION_APPROVED;
}
ApiMgtDAO dao = ApiMgtDAO.getInstance();
try {
dao.updateApplicationStatus(Integer.parseInt(workFlowDTO.getWorkflowReference()), status);
} catch (APIManagementException e) {
String msg = "Error occured when updating the status of the Application creation process";
log.error(msg, e);
throw new WorkflowException(msg, e);
}
return new GeneralWorkflowResponse();
}
use of org.wso2.carbon.apimgt.rest.api.admin.dto.WorkflowDTO in project carbon-apimgt by wso2.
the class ApplicationRegistrationSimpleWorkflowExecutor method complete.
/**
* Complete the external process status
* Based on the workflow status we will update the status column of the
* Application table
*
* @param workFlowDTO - WorkflowDTO
*/
public WorkflowResponse complete(WorkflowDTO workFlowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.info("Complete Application Registration Workflow..");
}
ApplicationRegistrationWorkflowDTO regWFDTO = (ApplicationRegistrationWorkflowDTO) workFlowDTO;
ApiMgtDAO dao = ApiMgtDAO.getInstance();
try {
dao.createApplicationRegistrationEntry((ApplicationRegistrationWorkflowDTO) workFlowDTO, false);
generateKeysForApplication(regWFDTO);
} catch (APIManagementException e) {
String msg = "Error occurred when updating the status of the Application creation process";
log.error(msg, e);
throw new WorkflowException(e.getMessage(), e);
}
return new GeneralWorkflowResponse();
}
use of org.wso2.carbon.apimgt.rest.api.admin.dto.WorkflowDTO in project carbon-apimgt by wso2.
the class SubscriptionCreationApprovalWorkflowExecutor method complete.
/**
* Complete the Approval workflow executor for Subscription creation.
*
* @param workflowDTO
*/
@Override
public WorkflowResponse complete(WorkflowDTO workflowDTO) throws WorkflowException {
workflowDTO.setUpdatedTime(System.currentTimeMillis());
super.complete(workflowDTO);
if (log.isDebugEnabled()) {
String logMessage = "Subscription Creation [Complete] Workflow Invoked. Workflow ID : " + workflowDTO.getExternalWorkflowReference() + " Workflow State : " + workflowDTO.getStatus();
log.debug(logMessage);
}
if (WorkflowStatus.APPROVED.equals(workflowDTO.getStatus())) {
ApiMgtDAO apiMgtDAO = ApiMgtDAO.getInstance();
try {
apiMgtDAO.updateSubscriptionStatus(Integer.parseInt(workflowDTO.getWorkflowReference()), APIConstants.SubscriptionStatus.UNBLOCKED);
} catch (APIManagementException e) {
log.error("Could not complete subscription creation workflow", e);
throw new WorkflowException("Could not complete subscription creation workflow", e);
}
} else if (WorkflowStatus.REJECTED.equals(workflowDTO.getStatus())) {
ApiMgtDAO apiMgtDAO = ApiMgtDAO.getInstance();
try {
apiMgtDAO.updateSubscriptionStatus(Integer.parseInt(workflowDTO.getWorkflowReference()), APIConstants.SubscriptionStatus.REJECTED);
} catch (APIManagementException e) {
log.error("Could not complete subscription creation workflow", e);
throw new WorkflowException("Could not complete subscription creation workflow", e);
}
}
return new GeneralWorkflowResponse();
}
Aggregations