Tratamento de falhas
Os eventos de provisionamento que apresentarem qualquer tipo de falha devem ser devidamente capturados e tratados por meio de exceções específicas. O tratamento adequado dessas exceções permite que o Blazon identifique corretamente a natureza da falha, possibilitando que o administrador da plataforma adote políticas de failover apropriadas para lidar com cada situação.
Falhas
A tabela abaixo descreve as exceções disponíveis atualmente:
ProvisioningGeneralFailException
100
ProvisioningConnectionFailException
101
ProvisioningConnectionTimeoutException
102
ProvisioningAuthenticationFailException
103
ProvisioningAuthorizationFailException
104
ProvisioningAccountGeneralFailException
300
ProvisioningAccountNotFoundException
301
ProvisioningAccountAlreadyExistException
302
ProvisioningInvalidAccountAttributeException
303
ProvisioningMandatoryAccountEmptyAttributeException
304
ProvisioningInvalidAccountUsernameException
305
ProvisioningInvalidPasswordException
306
ProvisioningMembershipEntitlementGeneralFailException
400
ProvisioningMembershipEntitlementNotFoundException
401
ProvisioningMembershipEntitlementAlreadyExistException
402
ProvisioningInvalidMembershipEntitlementAttributeException
403
ProvisioningMandatoryMembershipEntitlementEmptyAttributeException
404
ProvisioningEntitlementGeneralFailException
500
ProvisioningEntitlementNotFoundException
501
ProvisioningEntitlementAlreadyExistException
502
ProvisioningInvalidEntitlementAttributeException
503
ProvisioningMandatoryEntitlementEmptyAttributeException
504
Exemplo de tratamento da falha
O trecho de código abaixo demonstra um exemplo de como uma falha pode ser manipulada:
import java.util.Map;
import org.springframework.stereotype.Component;
import com.blazon.resourceadapter.api.provisioning.account.operations.CreateAccountOperation;
import com.blazon.resourceadapter.api.provisioning.dto.ProvisioningResult;
import com.blazon.resourceadapter.api.provisioning.tracking.util.Tracking;
@Component
public class CreateAccount extends CreateAccountOperation {
@Override
public ProvisioningResult createAccount(Map<String, Object> account, Tracking tracking) {
(...)
try {
api.create(user);
} catch (UserAlreadyExist e) {
throw new ProvisioningAccountAlreadyExistException(Account already exist", false);
}
return null;
}
}
No trecho de código, sempre que método create lança uma exceção do tipo UserAlreadyExist, o Resource Adapter enviará de volta ao Blazon um código de falha indicando que já existe uma conta para o usuário que está tentando ser provisionado.
Last updated
Was this helpful?