use of org.wso2.carbon.idp.mgt.IdentityProviderManagementException in project carbon-apimgt by wso2.
the class APIAdminImpl method deleteIdentityProvider.
@Override
public void deleteIdentityProvider(String organization, KeyManagerConfigurationDTO kmConfig) throws APIManagementException {
if (kmConfig != null) {
if (StringUtils.equals(KeyManagerConfiguration.TokenType.EXCHANGED.toString(), kmConfig.getTokenType()) || StringUtils.equals(KeyManagerConfiguration.TokenType.BOTH.toString(), kmConfig.getTokenType())) {
try {
if (kmConfig.getExternalReferenceId() != null) {
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
if (log.isDebugEnabled()) {
log.debug("Retrieving key manager reference IDP for tenant domain : " + tenantDomain);
}
IdentityProviderManager.getInstance().deleteIdPByResourceId(kmConfig.getExternalReferenceId(), APIUtil.getInternalOrganizationDomain(organization));
}
} catch (IdentityProviderManagementException e) {
throw new APIManagementException("IdP deletion failed. " + e.getMessage(), e, ExceptionCodes.IDP_DELETION_FAILED);
}
}
}
}
use of org.wso2.carbon.idp.mgt.IdentityProviderManagementException in project carbon-apimgt by wso2.
the class APIAdminImpl method getKeyManagerConfigurationById.
@Override
public KeyManagerConfigurationDTO getKeyManagerConfigurationById(String organization, String id) throws APIManagementException {
KeyManagerConfigurationDTO keyManagerConfigurationDTO = apiMgtDAO.getKeyManagerConfigurationByID(organization, id);
if (keyManagerConfigurationDTO == null) {
return null;
}
if (APIConstants.KeyManager.DEFAULT_KEY_MANAGER.equals(keyManagerConfigurationDTO.getName())) {
APIUtil.getAndSetDefaultKeyManagerConfiguration(keyManagerConfigurationDTO);
}
if (!KeyManagerConfiguration.TokenType.valueOf(keyManagerConfigurationDTO.getTokenType().toUpperCase()).equals(KeyManagerConfiguration.TokenType.EXCHANGED)) {
maskValues(keyManagerConfigurationDTO);
}
if (StringUtils.equals(KeyManagerConfiguration.TokenType.EXCHANGED.toString(), keyManagerConfigurationDTO.getTokenType()) || StringUtils.equals(KeyManagerConfiguration.TokenType.BOTH.toString(), keyManagerConfigurationDTO.getTokenType())) {
try {
if (keyManagerConfigurationDTO.getExternalReferenceId() != null) {
IdentityProvider identityProvider = IdentityProviderManager.getInstance().getIdPByResourceId(keyManagerConfigurationDTO.getExternalReferenceId(), APIUtil.getInternalOrganizationDomain(organization), Boolean.FALSE);
mergeIdpWithKeyManagerConfiguration(identityProvider, keyManagerConfigurationDTO);
}
} catch (IdentityProviderManagementException e) {
throw new APIManagementException("IdP retrieval failed. " + e.getMessage(), e, ExceptionCodes.IDP_RETRIEVAL_FAILED);
}
}
if (!StringUtils.equals(KeyManagerConfiguration.TokenType.EXCHANGED.toString(), keyManagerConfigurationDTO.getTokenType())) {
getKeyManagerEndpoints(keyManagerConfigurationDTO);
}
return keyManagerConfigurationDTO;
}
use of org.wso2.carbon.idp.mgt.IdentityProviderManagementException in project carbon-apimgt by wso2.
the class APIAdminImpl method updateKeyManagerConfiguration.
@Override
public KeyManagerConfigurationDTO updateKeyManagerConfiguration(KeyManagerConfigurationDTO keyManagerConfigurationDTO) throws APIManagementException {
if (!KeyManagerConfiguration.TokenType.valueOf(keyManagerConfigurationDTO.getTokenType().toUpperCase()).equals(KeyManagerConfiguration.TokenType.EXCHANGED)) {
validateKeyManagerConfiguration(keyManagerConfigurationDTO);
validateKeyManagerEndpointConfiguration(keyManagerConfigurationDTO);
}
KeyManagerConfigurationDTO oldKeyManagerConfiguration = apiMgtDAO.getKeyManagerConfigurationByID(keyManagerConfigurationDTO.getOrganization(), keyManagerConfigurationDTO.getUuid());
if (StringUtils.equals(KeyManagerConfiguration.TokenType.EXCHANGED.toString(), keyManagerConfigurationDTO.getTokenType()) || StringUtils.equals(KeyManagerConfiguration.TokenType.BOTH.toString(), keyManagerConfigurationDTO.getTokenType())) {
IdentityProvider identityProvider;
try {
if (StringUtils.isNotEmpty(oldKeyManagerConfiguration.getExternalReferenceId())) {
IdentityProvider retrievedIDP = IdentityProviderManager.getInstance().getIdPByResourceId(oldKeyManagerConfiguration.getExternalReferenceId(), APIUtil.getInternalOrganizationDomain(keyManagerConfigurationDTO.getOrganization()), Boolean.FALSE);
identityProvider = IdentityProviderManager.getInstance().updateIdPByResourceId(oldKeyManagerConfiguration.getExternalReferenceId(), updatedIDP(retrievedIDP, keyManagerConfigurationDTO), APIUtil.getInternalOrganizationDomain(keyManagerConfigurationDTO.getOrganization()));
} else {
identityProvider = IdentityProviderManager.getInstance().addIdPWithResourceId(createIdp(keyManagerConfigurationDTO), APIUtil.getInternalOrganizationDomain(keyManagerConfigurationDTO.getOrganization()));
keyManagerConfigurationDTO.setExternalReferenceId(identityProvider.getResourceId());
}
} catch (IdentityProviderManagementException e) {
throw new APIManagementException("IdP adding failed. " + e.getMessage(), e, ExceptionCodes.IDP_ADDING_FAILED);
}
keyManagerConfigurationDTO.setExternalReferenceId(identityProvider.getResourceId());
}
if ((StringUtils.equals(KeyManagerConfiguration.TokenType.EXCHANGED.toString(), oldKeyManagerConfiguration.getTokenType()) || StringUtils.equals(KeyManagerConfiguration.TokenType.BOTH.toString(), oldKeyManagerConfiguration.getTokenType())) && StringUtils.equals(KeyManagerConfiguration.TokenType.DIRECT.toString(), keyManagerConfigurationDTO.getTokenType())) {
// Delete Identity Provider Created.
if (StringUtils.isNotEmpty(oldKeyManagerConfiguration.getExternalReferenceId())) {
try {
IdentityProviderManager.getInstance().deleteIdPByResourceId(oldKeyManagerConfiguration.getExternalReferenceId(), APIUtil.getInternalOrganizationDomain(keyManagerConfigurationDTO.getOrganization()));
keyManagerConfigurationDTO.setExternalReferenceId(null);
} catch (IdentityProviderManagementException e) {
throw new APIManagementException("IdP deletion failed. " + e.getMessage(), e, ExceptionCodes.IDP_DELETION_FAILED);
}
}
}
encryptKeyManagerConfigurationValues(oldKeyManagerConfiguration, keyManagerConfigurationDTO);
apiMgtDAO.updateKeyManagerConfiguration(keyManagerConfigurationDTO);
KeyManagerConfigurationDTO decryptedKeyManagerConfiguration = decryptKeyManagerConfigurationValues(keyManagerConfigurationDTO);
new KeyMgtNotificationSender().notify(decryptedKeyManagerConfiguration, APIConstants.KeyManager.KeyManagerEvent.ACTION_UPDATE);
return keyManagerConfigurationDTO;
}
Aggregations