mirror of
https://github.com/nsacyber/HIRS.git
synced 2024-12-27 16:28:57 +00:00
Use boolean flags to differentiate base and support RIMs with multi-file uploads
This commit is contained in:
parent
e7889ca5fb
commit
30de99e15b
@ -160,14 +160,14 @@ public class ReferenceManifestPageController extends PageController<NoPageParams
|
|||||||
Pattern baseRimPattern = Pattern.compile(BASE_RIM_FILE_PATTERN);
|
Pattern baseRimPattern = Pattern.compile(BASE_RIM_FILE_PATTERN);
|
||||||
Pattern supportRimPattern = Pattern.compile(SUPPORT_RIM_FILE_PATTERN);
|
Pattern supportRimPattern = Pattern.compile(SUPPORT_RIM_FILE_PATTERN);
|
||||||
Matcher matcher;
|
Matcher matcher;
|
||||||
boolean isBaseRim = false;
|
|
||||||
boolean isSupportRim = false;
|
|
||||||
List<BaseReferenceManifest> baseRims = new ArrayList<>();
|
List<BaseReferenceManifest> baseRims = new ArrayList<>();
|
||||||
List<SupportReferenceManifest> supportRims = new ArrayList<>();
|
List<SupportReferenceManifest> supportRims = new ArrayList<>();
|
||||||
log.info(String.format("Processing %s uploaded files", files.length));
|
log.info(String.format("Processing %s uploaded files", files.length));
|
||||||
|
|
||||||
// loop through the files
|
// loop through the files
|
||||||
for (MultipartFile file : files) {
|
for (MultipartFile file : files) {
|
||||||
|
boolean isBaseRim;
|
||||||
|
boolean isSupportRim = false;
|
||||||
fileName = file.getOriginalFilename();
|
fileName = file.getOriginalFilename();
|
||||||
matcher = baseRimPattern.matcher(fileName);
|
matcher = baseRimPattern.matcher(fileName);
|
||||||
isBaseRim = matcher.matches();
|
isBaseRim = matcher.matches();
|
||||||
@ -175,16 +175,15 @@ public class ReferenceManifestPageController extends PageController<NoPageParams
|
|||||||
matcher = supportRimPattern.matcher(fileName);
|
matcher = supportRimPattern.matcher(fileName);
|
||||||
isSupportRim = matcher.matches();
|
isSupportRim = matcher.matches();
|
||||||
}
|
}
|
||||||
if (!isBaseRim && !isSupportRim) {
|
if (isBaseRim || isSupportRim) {
|
||||||
|
parseRIM(file, isSupportRim, messages, baseRims, supportRims);
|
||||||
|
} else {
|
||||||
String errorString = "The file extension of " + fileName + " was not recognized." +
|
String errorString = "The file extension of " + fileName + " was not recognized." +
|
||||||
" Base RIMs support the extension \".swidtag\", and support RIMs support " +
|
" Base RIMs support the extension \".swidtag\", and support RIMs support " +
|
||||||
"\".rimpcr\", \".rimel\", \".bin\", and \".log\". " +
|
"\".rimpcr\", \".rimel\", \".bin\", and \".log\". " +
|
||||||
"Please verify your upload and retry.";
|
"Please verify your upload and retry.";
|
||||||
log.error("File extension in " + fileName + " not recognized as base or support RIM.");
|
log.error("File extension in " + fileName + " not recognized as base or support RIM.");
|
||||||
messages.addError(errorString);
|
messages.addError(errorString);
|
||||||
} else {
|
|
||||||
//Parse reference manifests
|
|
||||||
parseRIM(file, isSupportRim, messages, baseRims, supportRims);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
baseRims.stream().forEach((rim) -> {
|
baseRims.stream().forEach((rim) -> {
|
||||||
@ -412,13 +411,14 @@ public class ReferenceManifestPageController extends PageController<NoPageParams
|
|||||||
if (referenceManifestRepository.findByHexDecHashAndRimType(
|
if (referenceManifestRepository.findByHexDecHashAndRimType(
|
||||||
supportRim.getHexDecHash(), supportRim.getRimType()) == null) {
|
supportRim.getHexDecHash(), supportRim.getRimType()) == null) {
|
||||||
supportRims.add(supportRim);
|
supportRims.add(supportRim);
|
||||||
messages.addInfo("Saved Reference Manifest " + fileName);
|
messages.addInfo("Saved support RIM " + fileName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseRim = new BaseReferenceManifest(fileName, fileBytes);
|
baseRim = new BaseReferenceManifest(fileName, fileBytes);
|
||||||
if (referenceManifestRepository.findByHexDecHashAndRimType(
|
if (referenceManifestRepository.findByHexDecHashAndRimType(
|
||||||
baseRim.getHexDecHash(), baseRim.getRimType()) == null) {
|
baseRim.getHexDecHash(), baseRim.getRimType()) == null) {
|
||||||
baseRims.add(baseRim);
|
baseRims.add(baseRim);
|
||||||
|
messages.addInfo("Saved base RIM " + fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IOException | NullPointerException ioEx) {
|
} catch (IOException | NullPointerException ioEx) {
|
||||||
@ -431,6 +431,10 @@ public class ReferenceManifestPageController extends PageController<NoPageParams
|
|||||||
= String.format("Failed to parse base RIM file (%s): ", fileName);
|
= String.format("Failed to parse base RIM file (%s): ", fileName);
|
||||||
log.error(failMessage, e);
|
log.error(failMessage, e);
|
||||||
messages.addError(failMessage + e.getMessage());
|
messages.addError(failMessage + e.getMessage());
|
||||||
|
} catch (Exception e) {
|
||||||
|
final String failMessage
|
||||||
|
= String.format("Failed to parse (%s): ", fileName);
|
||||||
|
log.error(failMessage, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user