RED-7631: unescaped rule files

This commit is contained in:
Kilian Schuettler 2023-10-11 10:01:43 +02:00
parent c4485ad26b
commit cd2d97616d

View File

@ -25,7 +25,6 @@ import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.compressors.FileNameUtil;
import org.apache.commons.compress.utils.FileNameUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -217,18 +216,25 @@ public class DossierTemplateImportService {
FileAttributesGeneralConfiguration fileAttributesGeneralConfiguration = objectMapper.readValue(bytes, FileAttributesGeneralConfiguration.class);
importTemplateResult.setFileAttributesGeneralConfiguration(fileAttributesGeneralConfiguration);
} else if (ze.getName().contains(ExportFilename.RULES.getFilename())) {
if(ze.getName().endsWith(".txt")) {
if (ze.getName().endsWith(".txt")) {
String rules = objectMapper.readValue(new String(bytes), String.class);
importTemplateResult.setRuleSet(rules);
}else if(ze.getName().endsWith(".drl")) {
} else if (ze.getName().endsWith(".drl")) {
String rules = new String(bytes);
importTemplateResult.setRuleSet(rules);
} else {
throw new BadRequestException("File is not in TXT or DRL format. "+ FileNameUtils.getExtension(ze.getName()) +" format is not supported.");
throw new BadRequestException("Rule file is not in TXT or DRL format. " + FileNameUtils.getExtension(ze.getName()) + " format is not supported.");
}
} else if (ze.getName().contains(ExportFilename.COMPONENT_RULES.getFilename())) {
String rules = objectMapper.readValue(new String(bytes), String.class);
importTemplateResult.setComponentRuleSet(rules);
if (ze.getName().endsWith(".txt")) {
String rules = objectMapper.readValue(new String(bytes), String.class);
importTemplateResult.setComponentRuleSet(rules);
} else if (ze.getName().endsWith(".drl")) {
String rules = new String(bytes);
importTemplateResult.setComponentRuleSet(rules);
} else {
throw new BadRequestException("Component rule file is not in TXT or DRL format. " + FileNameUtils.getExtension(ze.getName()) + " format is not supported.");
}
} else if (ze.getName().contains(ExportFilename.DOSSIER_TYPE.getFilename())) {
Type type = objectMapper.readValue(bytes, Type.class);
importTemplateResult.getTypes().add(type);
@ -280,7 +286,7 @@ public class DossierTemplateImportService {
}
}
if(importTemplateResult.getDossierTemplate() == null) {
if (importTemplateResult.getDossierTemplate() == null) {
throw new BadRequestException("Provided archive is faulty");
}
return importTemplateResult;