public IOSKeyVaultEntry createKeyVaultEntry(KeyVaultEntryForm keyVaultEntryForm) {
IOSKeyVaultEntry keyVaultEntry = null;
User user = userService.getUserFromSecurityContext();
if (keyVaultEntryForm != null && user != null && user.getActiveOrganization() != null) {
Domain parentDomain = user.getActiveOrganization();
if (parentDomain != null) {
keyVaultEntry = new IOSKeyVaultEntry();
keyVaultEntry.setName(StringUtils.trimTrailingWhitespace(keyVaultEntryForm.getName()));
keyVaultEntry.setDistributionKeyPassword(keyVaultEntryForm.getDistributionKeyPassword());
keyVaultEntry.setStorageConfiguration(getStorageConfiguration(parentDomain));
keyVaultEntry.setParentDomain(parentDomain);
List<Long> childDomainIds = keyVaultEntryForm.getChildDomainIds();
List<Domain> childDomains = domainService.get(childDomainIds.toArray(new Long[childDomainIds.size()]));
keyVaultEntry.setChildDomains(childDomains);
parentDomain.getKeyVaultEntries().add(keyVaultEntry);
keyVaultEntryService.add(keyVaultEntry);
// Must add AppFiles after KeyVaultEntry is already added in order to comply with AppFile.Storable constraint.
keyVaultEntry.setDistributionCert(saveFile(keyVaultEntryForm.getDistributionCert(), parentDomain, keyVaultEntry));