Refactoring x509 provisioning, fix tests

This commit is contained in:
Andrii Landiak 2023-04-10 09:35:32 +03:00
parent b0d35372aa
commit e71f6bcc26
3 changed files with 8 additions and 9 deletions

View File

@ -275,9 +275,8 @@ public class DeviceProvisionServiceImpl implements DeviceProvisionService {
private void fetchAndApplyDeviceNameForX509ProvisionRequestWithRegEx(ProvisionRequest provisionRequest) { private void fetchAndApplyDeviceNameForX509ProvisionRequestWithRegEx(ProvisionRequest provisionRequest) {
DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileByProvisionDeviceKey(provisionRequest.getCredentials().getProvisionDeviceKey()); DeviceProfile deviceProfile = deviceProfileService.findDeviceProfileByProvisionDeviceKey(provisionRequest.getCredentials().getProvisionDeviceKey());
X509CertificateChainProvisionConfiguration configuration; if (deviceProfile != null && deviceProfile.getProfileData() != null && deviceProfile.getProfileData().getProvisionConfiguration() instanceof X509CertificateChainProvisionConfiguration) {
if (deviceProfile.getProfileData().getProvisionConfiguration() instanceof X509CertificateChainProvisionConfiguration) { X509CertificateChainProvisionConfiguration configuration = (X509CertificateChainProvisionConfiguration) deviceProfile.getProfileData().getProvisionConfiguration();
configuration = (X509CertificateChainProvisionConfiguration) deviceProfile.getProfileData().getProvisionConfiguration();
String certificateValue = provisionRequest.getCredentialsData().getX509CertHash(); String certificateValue = provisionRequest.getCredentialsData().getX509CertHash();
String certificateRegEx = configuration.getCertificateRegExPattern(); String certificateRegEx = configuration.getCertificateRegExPattern();
String deviceName = extractDeviceNameFromCertificateCNByRegEx(certificateValue, certificateRegEx); String deviceName = extractDeviceNameFromCertificateCNByRegEx(certificateValue, certificateRegEx);
@ -298,7 +297,6 @@ public class DeviceProvisionServiceImpl implements DeviceProvisionService {
if (matcher.find()) { if (matcher.find()) {
return matcher.group(0); return matcher.group(0);
} }
return null;
} catch (Exception ignored) {} } catch (Exception ignored) {}
return null; return null;
} }

View File

@ -712,11 +712,12 @@ public class DefaultTransportApiService implements TransportApiService {
} }
private ProvisionResponse provisionDeviceRequestAndGetResponse(ProvisionRequest provisionRequest) { private ProvisionResponse provisionDeviceRequestAndGetResponse(ProvisionRequest provisionRequest) {
ProvisionResponse provisionResponse = null;
try { try {
provisionResponse = deviceProvisionService.provisionDevice(provisionRequest); return deviceProvisionService.provisionDevice(provisionRequest);
} catch (ProvisionFailedException ignored) {} } catch (ProvisionFailedException e) {
return provisionResponse; log.error(e.getMessage());
}
return null;
} }
private List<String> convertX509CertificateChainToList(String certificateChain) { private List<String> convertX509CertificateChainToList(String certificateChain) {

View File

@ -221,7 +221,7 @@ public class DeviceProfileServiceImpl extends AbstractCachedEntityService<Device
@Override @Override
public DeviceProfile findDeviceProfileByProvisionDeviceKey(String provisionDeviceKey) { public DeviceProfile findDeviceProfileByProvisionDeviceKey(String provisionDeviceKey) {
log.trace("Executing findDeviceProfileIdByCredentialsId credentialId [{}]", provisionDeviceKey); log.trace("Executing findDeviceProfileByProvisionDeviceKey provisionKey [{}]", provisionDeviceKey);
validateString(provisionDeviceKey, INCORRECT_PROVISION_DEVICE_KEY + provisionDeviceKey); validateString(provisionDeviceKey, INCORRECT_PROVISION_DEVICE_KEY + provisionDeviceKey);
return cache.getAndPutInTransaction(DeviceProfileCacheKey.fromProvisionDeviceKey(provisionDeviceKey), return cache.getAndPutInTransaction(DeviceProfileCacheKey.fromProvisionDeviceKey(provisionDeviceKey),
() -> deviceProfileDao.findByProvisionDeviceKey(provisionDeviceKey), true); () -> deviceProfileDao.findByProvisionDeviceKey(provisionDeviceKey), true);