diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/InventoryUtils.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/InventoryUtils.java index f3716c359..b94432d7a 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/InventoryUtils.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/InventoryUtils.java @@ -392,4 +392,31 @@ public static Set getArtifactsForAsset(Inventory inventory, AssetMetaD return setOfArtifacts; } + public static Map> buildAssetToArtifactMap(Inventory filteredInventory) { + final Map> assetMetaDataToArtifactsMap = new HashMap<>(); + + // the report only operates on the specified assets (these may be filtered for the use case) + for (AssetMetaData assetMetaData : filteredInventory.getAssetMetaData()) { + + final String assetId = assetMetaData.get(AssetMetaData.Attribute.ASSET_ID); + + if (!StringUtils.isNotBlank(assetId)) continue; + + // derive licenses from artifacts + for (Artifact artifact : filteredInventory.getArtifacts()) { + // skip all artifacts that do not belong to an asset + if (StringUtils.isNotBlank(artifact.get(assetId))) { + assetMetaDataToArtifactsMap.computeIfAbsent(assetMetaData, c -> new HashSet<>()).add(artifact); + } else { + // check via asset id; if artifact id matches asset id; add + final String artifactAssetId = InventoryUtils.deriveAssetIdFromArtifact(artifact); + if (assetId.equals(artifactAssetId)) { + assetMetaDataToArtifactsMap.computeIfAbsent(assetMetaData, c -> new HashSet<>()).add(artifact); + } + } + } + } + return assetMetaDataToArtifactsMap; + } + } diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/Artifact.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/Artifact.java index 41abf1765..53a981cda 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/Artifact.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/Artifact.java @@ -59,6 +59,7 @@ public enum Attribute implements AbstractModelBase.Attribute { // url of the project pages URL("URL"), + SOURCE_CODE_URL("Source Code URL"), // indicates whether the artifact is security relevant and needs to be upgraded asap SECURITY_RELEVANT("Security Relevance"), @@ -76,16 +77,22 @@ public enum Attribute implements AbstractModelBase.Attribute { VERIFIED("Verified"), ERRORS("Errors"), HASH_SHA256("Hash (SHA-256)"), + HASH_SHA1("Hash (SHA1)"), + HASH_SHA512("Hash (SHA-512)"), PATH_IN_ASSET("Path in Asset"), VIRTUAL_ROOT_PATH("Virtual Root Path"), PURL("PURL"), COMPONENT_SOURCE_TYPE("Component Source Type"), - // FIXME: consolidate SOURCE("Source"), + ORGANIZATION("Organization"), + SUPPLIER("Supplier"), + + ARCHIVE("Archive"), + STRUCTURED("Structured"), + EXECUTABLE("Executable"); + - // FIXME: consolidate - ORGANIZATION("Organization"); private String key; diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/AssetMetaData.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/AssetMetaData.java index a3849dab5..d7a0001e4 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/AssetMetaData.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/model/AssetMetaData.java @@ -53,7 +53,15 @@ public enum Attribute implements AbstractModelBase.Attribute { VERSION("Version"), ASSESSMENT_ID("Assessment Id"), ROLE("Role"), - ASSESSMENT("Assessment"); + ASSESSMENT("Assessment"), + CHECKSUM("Checksum"), + HASH_SHA256("Hash (SHA-256)"), + HASH_SHA1("Hash (SHA1)"), + HASH_SHA512("Hash (SHA-512)"), + URL("URL"), + SOURCE_CODE_URL("Source Code URL"), + SUPPLIER("Supplier"), + TYPE("Type"); private String key; diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/InventoryReport.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/InventoryReport.java index a9d8b59d5..6547ef68c 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/InventoryReport.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/InventoryReport.java @@ -584,7 +584,7 @@ protected boolean createReport(Inventory globalInventory, Inventory localInvento // write reports if (inventoryBomReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_INVENTORY_REPORT_BOM, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_INVENTORY_REPORT_BOM, reportContext); } if (inventoryDiffReportEnabled) { @@ -593,23 +593,23 @@ protected boolean createReport(Inventory globalInventory, Inventory localInvento if (inventoryVulnerabilityReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_INVENTORY_REPORT_VULNERABILITY, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_INVENTORY_REPORT_VULNERABILITY, reportContext); } if (inventoryVulnerabilityReportSummaryEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_INVENTORY_REPORT_VULNERABILITY_SUMMARY, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_INVENTORY_REPORT_VULNERABILITY_SUMMARY, reportContext); } if (inventoryVulnerabilityStatisticsReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_INVENTORY_STATISTICS_VULNERABILITY, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_INVENTORY_STATISTICS_VULNERABILITY, reportContext); } // all vulnerability-related templates require to generate labels if (inventoryVulnerabilityReportEnabled || inventoryVulnerabilityStatisticsReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_LABELS_VULNERABILITY_ASSESSMENT, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_LABELS_VULNERABILITY_ASSESSMENT, reportContext); } if (inventoryPomEnabled) { @@ -619,12 +619,12 @@ protected boolean createReport(Inventory globalInventory, Inventory localInvento if (assetBomReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_ASSET_REPORT_BOM, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_ASSET_REPORT_BOM, reportContext); } if (assessmentReportEnabled) { writeReports(projectInventory, filteredInventory, inventoryReportAdapters, - deriveTemplateBaseDir(), TEMPLATE_GROUP_ASSESSMENT_REPORT, reportContext); + TEMPLATES_BASE_DIR, TEMPLATE_GROUP_ASSESSMENT_REPORT, reportContext); } // evaluate licenses only for managed artifacts @@ -707,10 +707,6 @@ private InventoryReportAdapters(AssetReportAdapter assetReportAdapter, Vulnerabi } } - private String deriveTemplateBaseDir() { - return TEMPLATES_BASE_DIR + SEPARATOR_SLASH + getTemplateLanguageSelector(); - } - protected void writeReports(Inventory projectInventory, Inventory filteredInventory, InventoryReportAdapters report, String templateBaseDir, String templateGroup, ReportContext reportContext) throws IOException { @@ -749,6 +745,9 @@ private void produceDita(Inventory projectInventory, Inventory filteredInventory final Template template = velocityEngine.getTemplate(templateResourcePath); final StringWriter sw = new StringWriter(); final VelocityContext context = new VelocityContext(); + final ReportUtils reportUtils = new ReportUtils(); + reportUtils.setLang(templateLanguageSelector); + reportUtils.setContext(context); // regarding the report we only use the filtered inventory for the time being context.put("inventory", filteredInventory); @@ -759,7 +758,7 @@ private void produceDita(Inventory projectInventory, Inventory filteredInventory context.put("report", this); context.put("StringEscapeUtils", org.apache.commons.lang.StringEscapeUtils.class); context.put("RegExUtils", RegExUtils.class); - context.put("utils", new ReportUtils()); + context.put("utils", reportUtils); context.put("Double", Double.class); context.put("Float", Float.class); @@ -993,7 +992,7 @@ protected void writeDiffReport(Inventory referenceInventory, Inventory projectIn new AssessmentReportAdapter(baseFilteredInventory, securityPolicy), new InventoryReportAdapter(baseFilteredInventory)); - writeReports(baseFilteredInventory, filteredInventory, inventoryReportAdapters, deriveTemplateBaseDir(), TEMPLATE_GROUP_INVENTORY_REPORT_DIFF, reportContext); + writeReports(baseFilteredInventory, filteredInventory, inventoryReportAdapters, TEMPLATES_BASE_DIR, TEMPLATE_GROUP_INVENTORY_REPORT_DIFF, reportContext); } /** diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/ReportUtils.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/ReportUtils.java index 0aa0844eb..6638f1440 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/ReportUtils.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/ReportUtils.java @@ -15,17 +15,50 @@ */ package org.metaeffekt.core.inventory.processor.report; +import lombok.Setter; import org.apache.commons.lang3.StringUtils; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.apache.xmlbeans.impl.schema.PathResourceLoader; import org.metaeffekt.core.inventory.InventoryUtils; import org.metaeffekt.core.inventory.processor.model.Artifact; import org.metaeffekt.core.inventory.processor.model.AssetMetaData; import org.metaeffekt.core.inventory.processor.model.Inventory; +import java.io.*; import java.util.*; import java.util.stream.Collectors; public class ReportUtils { + @Setter + private VelocityContext context; + + private Properties languageProperties; + + /** + * It is recommended to use Locale.getLanguage().toString() as those abbreviations are used in the + * getLanguagePropertyFile() method and as the property file names. + */ + private String lang; + + public void setLang(String lang) { + this.lang = lang; + Properties props = new Properties(); + InputStream inputStream = this.getClass() + .getClassLoader() + .getResourceAsStream("META-INF/templates/lang/" + lang + ".properties"); + + try { + if (inputStream != null) { + props.load(inputStream); + languageProperties = props; + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + public boolean isEmpty(String value) { return !StringUtils.isNotBlank(value); } @@ -70,8 +103,26 @@ public Set getAssetsForArtifacts(List artifacts, Invent } } - // return empty set + return Collections.emptySet(); } + public String getText(String key) { + String value = languageProperties.get(key).toString(); + if (StringUtils.isNotBlank(value)) { + return evaluate(value); + } + return ""; + } + + // TODO: Manually evaluate how expensive this operation is compared to previous report iterations. + public String evaluate(String template) { + StringWriter writer = new StringWriter(); + try { + Velocity.evaluate(context, writer, "TemplateEval", new StringReader(template)); + } catch ( Exception e ) { + throw new RuntimeException(e); + } + return writer.toString(); + } } diff --git a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/model/AssetData.java b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/model/AssetData.java index 5b8afbad8..0322d03a2 100644 --- a/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/model/AssetData.java +++ b/libraries/ae-inventory-processor/src/main/java/org/metaeffekt/core/inventory/processor/report/model/AssetData.java @@ -56,7 +56,7 @@ public class AssetData { public static AssetData fromInventory(Inventory filteredInventory) { AssetData assetData = new AssetData(); - final Map> assetMetaDataToArtifactsMap = assetData.buildAssetToArtifactMap(filteredInventory); + final Map> assetMetaDataToArtifactsMap = InventoryUtils.buildAssetToArtifactMap(filteredInventory); assetData.insertData(filteredInventory, assetMetaDataToArtifactsMap); @@ -148,34 +148,6 @@ private String evaluateRepresentedAs(String associatedLicense, LicenseData licen return representedAs; } - private Map> buildAssetToArtifactMap(Inventory filteredInventory) { - final Map> assetMetaDataToArtifactsMap = new HashMap<>(); - - // the report only operates on the specified assets (these may be filtered for the use case) - for (AssetMetaData assetMetaData : filteredInventory.getAssetMetaData()) { - - final String assetId = assetMetaData.get(AssetMetaData.Attribute.ASSET_ID); - - if (!StringUtils.isNotBlank(assetId)) continue; - - // derive licenses from artifacts - for (Artifact artifact : filteredInventory.getArtifacts()) { - // skip all artifacts that do not belong to an asset - final boolean containedInAsset = StringUtils.isNotBlank(artifact.get(assetId)); - if (containedInAsset) { - assetMetaDataToArtifactsMap.computeIfAbsent(assetMetaData, c -> new HashSet<>()).add(artifact); - } else { - // check via asset id; if artifact id matches asset id; add - final String artifactAssetId = InventoryUtils.deriveAssetIdFromArtifact(artifact); - if (assetId.equals(artifactAssetId)) { - assetMetaDataToArtifactsMap.computeIfAbsent(assetMetaData, c -> new HashSet<>()).add(artifact); - } - } - } - } - return assetMetaDataToArtifactsMap; - } - private AssetLicenseData createAssetLicenseData(AssetMetaData assetMetaData, Set assetAssociatedLicenses) { final String assetId = assetMetaData.get(AssetMetaData.Attribute.ASSET_ID); final String assetName = assetMetaData.getAlternatives("Name", "Machine Tag", "Repository", "Repo"); diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/annex-bookmap/map_annex-bookmap.ditamap.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/annex-bookmap/map_annex-bookmap.ditamap.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/annex-bookmap/map_annex-bookmap.ditamap.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/annex-bookmap/map_annex-bookmap.ditamap.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/macros/assessment-report.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/macros/assessment-report.vm similarity index 88% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/macros/assessment-report.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/macros/assessment-report.vm index 959aabbb4..1405e8a1d 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/macros/assessment-report.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/macros/assessment-report.vm @@ -14,7 +14,7 @@ #set ($assetGroupDisplayName = $group.assetGroupDisplayName) #set ($assetGroupAsXmlId = $group.assetGroupAsXmlId) - Asset Group <i>$assetGroupDisplayName</i> + $utils.getText("general.short.asset-group") <i>$assetGroupDisplayName</i> @@ -26,14 +26,14 @@ -

Asset Name

+

$utils.getText("general.short.asset-name")

#labelRef("Critical") #labelRef("High") #labelRef("Medium") #labelRef("Low") #labelRef("None") -

Total

-

Assessed

+

$utils.getText("general.short.total")

+

$utils.getText("general.short.assessed")

diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-modified.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-modified.dita.vt new file mode 100644 index 000000000..4b4cbdfa5 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-modified.dita.vt @@ -0,0 +1,24 @@ +## load macros from other files +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/assessment-report/macros/assessment-report.vm") +## +## main template content + + + + $reportContext.combinedTitle($utils.getText("assessment-report.short.effective-vuln-by-asset"), true) +## + #set($assets = $assessmentReportAdapter.getAssets()) + +## + + + #if ($assets.isEmpty) + $utils.getText("general.assets-empty") + #else +

$utils.getText("assessment-report.vuln-table-descr")

+

$utils.getText("assessment-report.vuln-table-descr-modified")

+ #assetAssessmentSummary("asset-assessment-summary-effective", $assets, true) + #end + +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt new file mode 100644 index 000000000..98512c5f3 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt @@ -0,0 +1,24 @@ +## load macros from other files +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/assessment-report/macros/assessment-report.vm") +## +## main template content + + + + $reportContext.combinedTitle($utils.getText("assessment-report.short.associated-vuln-by-asset"), true) +## + #set($assets = $assessmentReportAdapter.getAssets()) + + + ## + + #if ($assets.isEmpty) + $utils.getText("general.assets-empty") + #else +

$utils.getText("assessment-report.vuln-table-descr")

+

$utils.getText("assessment-report.vuln-table-descr-unmodified")

+ #assetAssessmentSummary("asset-assessment-summary-associated", $assets, false) + #end + +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/asset-report.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/asset-report.properties.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/asset-report.properties.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/asset-report.properties.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-asset-info.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-asset-info.vm similarity index 90% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-asset-info.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-asset-info.vm index 9a95873df..e69888882 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-asset-info.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-asset-info.vm @@ -4,9 +4,7 @@ #macro(containedComponentsTable $artifacts) #if ($artifacts.size() > 0) -

- Listed below are all components containing vulnerabilities which are associated with this asset. -

+

$utils.getText("asset-report-bom.contained-components-table")

@@ -45,6 +43,6 @@
#else - There are no components contained in this asset. + $utils.getText("general.no-affected-components") #end #end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm new file mode 100644 index 000000000..d1c1ea057 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm @@ -0,0 +1,130 @@ +#macro (insertLicenseAssetTopic $license) + #set($folder=$inventory.getLicenseFolder($license)) + #set($assetLicenseDataList=$assetData.evaluateAssets($license)) + #if(!$assetLicenseDataList.isEmpty()) + + $report.xmlEscapeLicense($license) + +

+ $utils.getText("asset-report-bom.license-asset-topic") + #if($folder) + $utils.getText("asset-report-bom.license-asset-topic-location") + $report.xmlEscapeString($license) + [external] + + . + #end +

+

+ + + + + + + + Type + Name / Repository + Version / Tag + + + + #foreach($assetLicenseData in $assetLicenseDataList) + + + $report.xmlEscapeString($assetLicenseData.getAssetType()) + + + $report.xmlEscapeArtifactId($assetLicenseData.getAssetName()) + + + $report.xmlEscapeGAV($assetLicenseData.getAssetVersion()) + + + #end + + +
+

+ +
+ #end +#end +#macro (insertLicenseTable $id $title $licenseList $handleSubstructure) + + $title$reportContext.inContextOf() + + + + + + + + + License + SPDX Id + OSI Status + Open CoDE Approval + Count + + + + #set($osiStatusMap = $assetAdapter.getOsiStatusMap($report)) + #set($openCoDEStatusMap = { + "approved" : "yes", + "(approved)" : "(yes)", + "not approved" : "no" + }) + + #foreach($license in $licenseList) + #if (!$license.contains(" + ")) + #set($licenseData=$inventory.findMatchingLicenseData($license)) + + #if ($handleSubstructure && $assetData.isLicenseSubstructureRequired($license)) + + + $report.xmlEscapeLicense($license) + + + + #if ($licenseData && $utils.notEmpty($licenseData.get( + 'SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end + #if ($licenseData) + #set($mappedStatus=$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap)) + #if ($mappedStatus)$mappedStatus + #end + #else #end + #if ($licenseData) + #set($mappedStatus=$reportContext.map($licenseData.get( + "Open CoDE Status"), $openCoDEStatusMap)) + #if ($mappedStatus)$mappedStatus + #end + #else #end + #else + + + $report.xmlEscapeLicense($license) + + + #if ($licenseData && $utils.notEmpty($licenseData.get( + 'SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end + #if ($licenseData)$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap, + " ")#else #end + #if ($licenseData)$reportContext.map($licenseData.get( + "Open CoDE Status"), $openCoDEStatusMap, " ")#end + #end + + + $assetData.countAssetsWithRepresentedAssociatedLicense($license, $handleSubstructure) + + + + #end + #end + + +
+#end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-contained-components.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-contained-components.dita.vt similarity index 76% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-contained-components.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-contained-components.dita.vt index dd2619f8a..6665d5981 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-contained-components.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-contained-components.dita.vt @@ -1,23 +1,23 @@ ## load macros from other files -#parse("META-INF/templates/en/asset-report-bom/macros/tpc_inventory-asset-info.vm") +#parse("META-INF/templates/asset-report-bom/macros/tpc_inventory-asset-info.vm") ## ## main template content - + - $reportContext.combinedTitle("Contained Components", true) + $reportContext.combinedTitle($utils.getText("asset-report-bom.short.contained-components"), true) ## -#set($assets = $assetAdapter.listAssets()) + #set($assets = $assetAdapter.listAssets()) ## #if($assets.isEmpty()) - There are no overarching assets available. + $utils.getText("general.assets-empty") #end #foreach($asset in $assets) #set($assetEscapedId = $report.xmlEscapeStringAttribute($asset)) #set($assetName = $asset.get("Name")) - #set($title = "${assetName} Components:") + #set($title = "${assetName}: " + $utils.getText("general.short.components")) #set($artifacts = $assetAdapter.getRelatedArtifacts($asset)) #set($toRemove = []) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-licenses.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-licenses.dita.vt similarity index 64% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-licenses.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-licenses.dita.vt index 591485647..c8159ddae 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-licenses.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-licenses.dita.vt @@ -1,34 +1,29 @@ -#parse("META-INF/templates/en/asset-report-bom/macros/tpc_inventory-license.dita.vm") - +#parse("META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm") + - $reportContext.combinedTitle("Asset Licenses", true) -#set($assetData=$report.getAssetData($inventory)) -#set($licensesAll=$assetData.getRepresentedAssociatedLicenses()) -#set($licenses=$assetData.getRepresentedAssociatedLicensesWithoutOption()) -#set($licenseExpressions=$assetData.getRepresentedAssociatedLicensesWithOption()) + $reportContext.combinedTitle($utils.getText("asset-report-bom.short.asset-licenses"), true) + #set($assetData=$report.getAssetData($inventory)) + #set($singleLicenses=$assetData.getRepresentedAssociatedLicensesWithoutOption()) + #set($licenseExpressions=$assetData.getRepresentedAssociatedLicensesWithOption()) + -

- Table Asset Licenses - provides an overview of all licenses and license expressions associated with the software assets covered by - this documentation. -

-

- Please note, that a license / license expression may be associated with several assets. -

- #if ($assetData.isLicenseSubstructureRequired()) - License variations of the same kind are displayed as - single license. The variations are detailed in the corresponding paragraphs. - An approval or license status may only be applicable for individual variants. - #end +

$utils.getText("asset-report-bom.asset-table-descr")

+

$utils.getText("asset-report-bom.asset-table-note")

+ #if ($assetData.isLicenseSubstructureRequired()) + $utils.getText("asset-report-bom.asset-table-foot-note") + #end + #if ($assetData.isIncludesOpenCoDESimilarLicense()) + $utils.getText("asset-report-bom.open-code-similar") + #end -#if (!$licenses.isEmpty()) - #insertLicenseTable("AssociatedLicenses", "Asset Licenses", $licenses, true) +#if (!$singleLicenses.isEmpty()) + #insertLicenseTable("AssociatedLicenses", "Asset Licenses", $singleLicenses, true) #end #if (!$licenseExpressions.isEmpty()) - Asset License Expressions$reportContext.inContextOf() + $utils.getText("asset-report-bom.short.asset-license-expressions") $reportContext.inContextOf() @@ -70,7 +65,7 @@ #end -#foreach($license in $licensesAll) +#foreach($license in $assetData.getRepresentedAssociatedLicenses()) #set($licenseList=$assetData.getLicensesForRepresentedLicense($license)) #if(!$assetData.isLicenseSubstructureRequired($license)) #insertLicenseAssetTopic($license) @@ -79,12 +74,10 @@ $report.xmlEscapeLicense($license)

- $license is representative of all licenses with variations, - characteristics and modifications of the original license or license template. In this chapter, - all variations, which are represented by $report.xmlEscapeString($license), are listed individually. + $utils.getText("asset-report-bom.license-detail-notice")

- #insertLicenseTable($license, "Lizenzenvarianten", $licenseList, false) + #insertLicenseTable($license, $utils.getText("general.short.license-variants"), $licenseList, false)

#foreach($associatedLicense in $assetData.getLicensesForRepresentedLicense($license)) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-no-license.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-no-license.dita.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-no-license.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-no-license.dita.vt index 2a4370ae6..3ff7c01d4 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-no-license.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-no-license.dita.vt @@ -1,27 +1,26 @@ -#parse("META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm") - +#parse("META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm") + - $reportContext.combinedTitle("Artefakte ohne Lizenz", true) -#set($assetData=$report.getAssetData($inventory)) -#set($artifactsWithoutLicense=$assetData.getArtifactsWithoutLicense()) - + $reportContext.combinedTitle($utils.getText("asset-report-bom.short.artifact-without-license"), true) + #set($assetData=$report.getAssetData($inventory)) + #set($artifactsWithoutLicense=$assetData.getArtifactsWithoutLicense()) + + + #if (!$artifactsWithoutLicense.isEmpty()) -

- Bei der Analyse der Daten konnten einem oder mehreren Artefakten keine Lizenz zugeordnet werden. Diese Artefakte - werden im Folgenden aufgelistet. Eine Artefakt kann mehreren Positionen im Softwarebestand zugeordnet werden. -

+

$utils.getText("asset-report-bom.artifacts-without-license")

- Artefakte$reportContext.inContextOf() + $utils.getText("general.short.artifacts") $reportContext.inContextOf() - Artefakt - Softwarebestand + $utils.getText("general.short.artifacts") + $utils.getText("general.short.asset") @@ -37,9 +36,7 @@
#else -

- Es wurden keine Artefakte ohne Lizenzzuordnung erkannt. -

+

$utils.getText("general.no-affected-components")

#end
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-report.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-report.dita.vt similarity index 76% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-report.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-report.dita.vt index adf50043a..15989e7a7 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/tpc_asset-report.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/asset-report-bom/tpc_asset-report.dita.vt @@ -1,19 +1,15 @@ - + - $reportContext.combinedTitle("Asset List", true) + $reportContext.combinedTitle($utils.getText("asset-report-bom.short.asset-list"), true) -#set($assets=$assetAdapter.listAssets()) + #set($assets=$assetAdapter.listAssets()) + #if($assets.isEmpty()) -

- No individual assets have been identified. -

+

$utils.getText("general.assets-empty")

#else -

- The following table lists all assets that have been identified in the context of ${product.name}. The - assets are listed in separate sections with their specific characteristics and attributes. -

+

$utils.getText("asset-report-bom.product-contained-assets")

#foreach($asset in $assets) @@ -27,8 +23,8 @@ - Attribute - Value + $utils.getText("general.short.attributes") + $utils.getText("general.short.values") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm deleted file mode 100644 index 09a9748c5..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm +++ /dev/null @@ -1,147 +0,0 @@ -#macro (insertLicenseAssetTopic $license) - #set($isExpression=$license.contains(" + ")) - #set($folder=$inventory.getLicenseFolder($license)) - #set($assetLicenseDataList=$assetData.evaluateAssets($license)) - #if(!$assetLicenseDataList.isEmpty()) - - $report.xmlEscapeLicense($license) - -

- Nachfolgende Tabelle listet den Softwarebestand im Bezug zu $report.xmlEscapeString($license). - #if($folder && !$isExpression) - Hinweise oder Inhalte der Lizenz können in - $report.xmlEscapeString($license) - [external] nachgeschlagen werden. - #end -

-

- - - - - - - - Typ - Name / Quelle - Version / Kennzeichen - - - - #foreach($assetLicenseData in $assetLicenseDataList) - - - $report.xmlEscapeString($assetLicenseData.getAssetType()) - - - $assetData.toAssetXref($assetLicenseData, "tpc_asset-report.dita") - - - $report.xmlEscapeGAV($assetLicenseData.getAssetVersion()) - - - #end - - -
-

- -
- #end -#end -#macro (insertLicenseTable $id $title $licenseList $handleSubstructure) - -$title$reportContext.inContextOf() - - - - - - - - - Lizenz - SPDX Id - OSI Status - Open CoDE Freigabe - Anzahl - - -#if($report.isIncludeInofficialOsiStatus()) -#set($osiStatusMap = { - "approved" : "anerkannt", - "submitted" : "eingereicht", - "not submitted" : "nicht eingereicht", - "pending" : "ausstehend", - "withdrawn" : "zurückgezogen", - "rejected" : "abgelehnt", - "ineligible" : "ungeeignet", - "unclear" : "unklar" -}) -#else -#set($osiStatusMap = { - "approved" : "anerkannt" -}) -#end -#set($openCoDEStatusMap = { - "approved" : "ja", - "(approved)" : "ja", - "not approved" : "nein" -}) -#set($openCoDESimilarMap = { - "(approved)" : "x" -}) -#set($approved="approved") - - #foreach($license in $licenseList) - #if (!$license.contains(" + ")) - #set($licenseData=$inventory.findMatchingLicenseData($license)) - #set($openCoDEMappedStatus=$reportContext.map($licenseData.get("Open CoDE Status"), $openCoDEStatusMap)) - #set($openCoDESimilar=$reportContext.map($licenseData.get("Open CoDE Status"), $openCoDESimilarMap)) - - #if ($handleSubstructure && $assetData.isLicenseSubstructureRequired($license)) - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - #if ($licenseData) - #set($mappedStatus=$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap)) - #if ($mappedStatus)$mappedStatus#end - #else #end - #if ($licenseData) - #if ($assetData.isIncludesOpenCoDESimilarLicense() && $utils.notEmpty($openCoDESimilar)) - #if ($openCoDEMappedStatus)$openCoDEMappedStatus#end - #else - #if ($openCoDEMappedStatus)$openCoDEMappedStatus#end - #end - #else #end - #else - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - #if ($licenseData)$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap, " ")#else #end - #if ($licenseData) - #if ($assetData.isIncludesOpenCoDESimilarLicense() && $utils.notEmpty($openCoDESimilar)) - #if ($openCoDEMappedStatus)$openCoDEMappedStatus#end - #else - #if ($openCoDEMappedStatus)$openCoDEMappedStatus#end - #end - #else #end - #end - - - $assetData.countAssetsWithRepresentedAssociatedLicense($license, $handleSubstructure) - - - - #end - #end - - -
-#end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-contained-components.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-contained-components.dita.vt deleted file mode 100644 index f1d08935b..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-contained-components.dita.vt +++ /dev/null @@ -1,49 +0,0 @@ -## load macros from other files -#parse("META-INF/templates/de/asset-report-bom/macros/tpc_inventory-asset-info.vm") -## -## main template content - - - - $reportContext.combinedTitle("Contained Components", true) -## -#set($assets = $assetAdapter.listAssets()) -## - #if($assets.isEmpty()) - There are no overarching assets available. - #end - - #foreach($asset in $assets) - - #set($assetEscapedId = $report.xmlEscapeStringAttribute($asset)) - #set($assetName = $asset.get("Name")) - #set($title = "${assetName} Components:") - #set($artifacts = $assetAdapter.getRelatedArtifacts($asset)) - #set($toRemove = []) - - #foreach($artifact in $artifacts) - #if($vulnerabilityAdapter.getVulnerabilitiesForComponent($artifact.getComponent()).isEmpty()) - #set($unused = $toRemove.add($artifact)) - #end - #end - - #foreach($artifact in $toRemove) - #set($unused = $artifacts.remove($artifact)) - #end - - #if(!$artifacts.isEmpty()) - - - -
- $title - - #containedComponentsTable($artifacts) - -
- -
- - #end - #end -
\ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-licenses.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-licenses.dita.vt deleted file mode 100644 index ef1c15f05..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-licenses.dita.vt +++ /dev/null @@ -1,105 +0,0 @@ -#parse("META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm") - - - - $reportContext.combinedTitle("Lizenzübersicht", true) -#set($assetData=$report.getAssetData($inventory)) -#set($licensesAll=$assetData.getRepresentedAssociatedLicenses()) -#set($licenses=$assetData.getRepresentedAssociatedLicensesWithoutOption()) -#set($licenseExpressions=$assetData.getRepresentedAssociatedLicensesWithOption()) - -

- Die nachfolgenden Tabellen geben einen Überblick über alle Lizenzen und Lizenzausdrücke, - die dem jeweiligen Softwarebestand zugeordnet sind. Die Tabellen stellen die assoziierten Lizenzen dar. Siehe - auch . -

-

- Bitte beachten, dass eine Lizenz oder ein Lizenzausdruck mehreren Positionen im Softwarebestand zugeordnet - werden kann. -

- #if ($assetData.isLicenseSubstructureRequired()) - - Lizenzen mit Variationen aber inhaltlich ähnlichen Eigenschaften werden durch eine repräsentative - Lizenz in der Auflistung zusammengefasst dargestellt. - Die Details der Ausprägungen oder Variationen der Lizenz werden in separaten Abschnitten detailliert - wiedergegeben. Freigaben von Lizenzvariationen sind ggf. nur für bestimmte Ausprägungen vorhanden. - - #end - #if ($assetData.isIncludesOpenCoDESimilarLicense()) - - Open CoDE ermöglicht eine abgeleitete Freigabe bei Lizenzähnlichkeit. Siehe LÄ.4 unter - - https://wikijs.opencode.de/de/Hilfestellungen_und_Richtlinien/Lizenzcompliance. - - #end - -#if (!$licenses.isEmpty()) - #insertLicenseTable("AssociatedLicenses", "Softwarebestand Lizenzen", $licenses, true) -#end - - #if (!$licenseExpressions.isEmpty()) - - Softwarebestand Lizenzausdrücke$reportContext.inContextOf() - - - - - - Lizenzausdruck - Anzahl - - - - #foreach($license in $licenseExpressions) - #set($licenseData=$inventory.findMatchingLicenseData($license)) - - #if ($assetData.isLicenseSubstructureRequired($license)) - - - $report.xmlEscapeLicense($license) - - - #else - - - $report.xmlEscapeLicense($license) - - - #end - - - $assetData.countAssetsWithRepresentedAssociatedLicense($license, true) - - - - #end - - -
- #end - - -#foreach($license in $licensesAll) - #set($licenseList=$assetData.getLicensesForRepresentedLicense($license)) - #if(!$assetData.isLicenseSubstructureRequired($license)) - #insertLicenseAssetTopic($license) - #else - - $report.xmlEscapeLicense($license) - -

- $license ist repräsentativ für verschiedene Ausprägungen der Lizenz oder des Lizenzausdrucks. - In diesem Abschnitt werden alle Ausprägungen von $report.xmlEscapeString($license) aufgelistet. -

-

- #insertLicenseTable($license, "Lizenzenvarianten", $licenseList, false) -

- - #foreach($associatedLicense in $assetData.getLicensesForRepresentedLicense($license)) - #insertLicenseAssetTopic($associatedLicense) - #end - -
- #end -#end -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-report.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-report.dita.vt deleted file mode 100644 index 56f4139b9..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/asset-report-bom/tpc_asset-report.dita.vt +++ /dev/null @@ -1,49 +0,0 @@ - - - - $reportContext.combinedTitle("Softwarebestand", true) - -#set($assets=$assetAdapter.listAssets()) -#if($assets.isEmpty()) -

- Es wurde kein spezifischer Softwarebestand identifiziert. -

- -#else -

- Die Tabelle stellt den Softwarebestand im Umfang von ${product.name} dar. Die einzelnen Positionen - werden nachfolgend in einzelnen Abschnitten mit ergänzenden Details aufgeführt. -

- -#foreach($asset in $assets) - - $assessmentReportAdapter.assetDisplayType($asset) - $assessmentReportAdapter.assetDisplayName($asset) - -

- - $assessmentReportAdapter.assetDisplayType($asset) - $assessmentReportAdapter.assetDisplayName($asset) - - - - - - Attribut - Wert - - - -#foreach($pair in $assetAdapter.listKeys($asset)) - - $report.xmlEscapeString($pair.getLeft()) - $report.xmlEscapeString($asset.get($pair.getRight())) - -#end - - -
-

- -
-#end -#end -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/macros/tpc_inventory-license.dita.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/macros/tpc_inventory-license.dita.vm deleted file mode 100644 index 65c7d6313..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/macros/tpc_inventory-license.dita.vm +++ /dev/null @@ -1,67 +0,0 @@ -#macro (insertLicenseArtifactTopic $license) - #set($folder=$inventory.getLicenseFolder($license)) - #set($licenseDataList=$inventory.evaluateComponents($license)) - #if(!$licenseDataList.isEmpty()) - - $report.xmlEscapeLicense($license) - -

- Nachfolgende Tabelle listet alle Komponenten auf, die oder deren Subkomponenten unter der Lizenz - $license stehen. - #if($folder) - Details zur Lizenzierung können unter - $license - [external] eingesehen werden. - #end -

-

- - Komponenten unter $license.trim()$reportContext.inContextOf() - - - - - - - Komponente - Artefakt / Paket / Webmodule - Version - - - - #foreach($licenseData in $licenseDataList) - #set($hasNotice=$inventory.hasNotice($licenseData)) - #foreach($artifact in $licenseData.getArtifacts()) - #set($rows=$licenseData.getArtifacts().size()) - #set($rows=$rows - 1) - - - #if($hasNotice) - - $report.xmlEscapeString($artifact.getComponent()) - - #else - $report.xmlEscapeString($artifact.getComponent()) - #end - - - #if($artifact.getGroupId())$artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId()) - #else - $report.xmlEscapeArtifactId($artifact.getId()) - #end - - - $report.xmlEscapeGAV($artifact.getVersion()) - - - #end - #end - - -
-

- -
- #end -#end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt deleted file mode 100644 index 0a33cce11..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt +++ /dev/null @@ -1,13 +0,0 @@ - - - - $reportContext.combinedTitle("Bill of Materials", true) - $reportContext.reportInventoryVersion - -

- In den folgenden Kapiteln werden die Bestandteile der Software zu $reportContext.reportInventoryName - $reportContext.reportInventoryVersion aufgeführt. Eine Lizenzübersicht fasst die als verbindlich bewerteten - Lizenzen für $reportContext.reportInventoryName zusammen. Zu jeder Lizenz werden die Artefakte aufgelistet, - die mit der Lizenz in Verbindung stehen. -

- -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-component-license-details.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-component-license-details.dita.vt deleted file mode 100644 index 55fd52e6d..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-component-license-details.dita.vt +++ /dev/null @@ -1,131 +0,0 @@ - - - - $reportContext.combinedTitle("Lizenzhinweise", true) - #set($componentNoticeList=$inventory.evaluateComponentNotices()) - #set($licensesInEffect=$inventory.evaluateLicenses(false)) - #if($componentNoticeList.isEmpty()) - - Keine Komponenten mit Lizenzhinweisen. - - #else - #foreach($componentNotice in $componentNoticeList) - - $report.xmlEscapeString($componentNotice.getComponentName()) - - - #foreach($artifactNotice in $componentNotice.getArtifactNotices()) - #set($assets=$utils.getAssetsForArtifacts($artifactNotice.getArtifacts(), $inventory)) - #if(!$assets.isEmpty()) - ## Assets Table start -
- Softwarebestand mit $report.xmlEscapeString($componentNotice.getComponentName()) - - Softwarebestand $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() - - - - - - - Softwarebestand Name - Softwarebestand Typ - Softwarebestand Version - - - - #foreach($asset in $assets) - - - #if($report.isAssetBomReportEnabled()) - - $report.xmlEscapeString($asset.get("Name")) - - #else - $report.xmlEscapeString($asset.get("Name")) - #end - - $report.xmlEscapeString($asset.get("Type")) - - $report.xmlEscapeGAV($asset.get("Version")) - - - #end - - -
-
- #end - ## Assets Table end - - ## Artifacts Table start -
- Artefakte der Komponente $report.xmlEscapeString($componentNotice.getComponentName()) - - Artefakte der Komponente $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() - - - - - - - Artefakt / Paket / Webmodul - Version - Effektive Lizenz(en) - - - - #foreach($artifact in $artifactNotice.getArtifacts()) - - #if($artifact.getGroupId()) - $artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId())#else - $report.xmlEscapeArtifactId($artifact.getId())#end - - - $report.xmlEscapeGAV($artifact.getVersion()) - - #set($licenses=$inventory.getEffectiveLicenses($artifact)) - #set($licensesAsString=$inventory.getEffectiveLicense($artifact)) - #if($licenses.isEmpty()) -   - #else - -## preserve formating to achive proper line-breaks -#foreach($license in $licenses)#if($licensesInEffect.contains($license))$report.xmlEscapeLicense($license) -#else$report.xmlEscapeLicense($license) -#end#end - - #end - - #end - - -
-
- ## Artifacts Table end - - ## insert notice -
- Lizenzhinweise - #set($notice=$artifactNotice.getNotice()) - #if($notice.isEmpty()) -

- Die hier detaillierte Software beinhaltet $componentNotice.getComponentName(). -

- #if($componentNotice.getLicense()) -

- Die vorliegenden Version von $report.xmlEscapeString($componentNotice.getComponentName()) - unterliegen den Bestimmungen der $componentNotice.getLicense(). -

- #end - #else - $notice.trim() - #end -
- #end - -
- #end - #end -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-components-no-license.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-components-no-license.dita.vt deleted file mode 100644 index ac4af1dbe..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-components-no-license.dita.vt +++ /dev/null @@ -1,63 +0,0 @@ -#parse("META-INF/templates/de/asset-report-bom/macros/tpc_inventory-license.dita.vm") - - - - $reportContext.combinedTitle("Komponenten ohne Lizenz", true) -#set($artifactsWithoutLicense=$inventoryReportAdapter.getArtifactsWithoutLicense()) -#set($components=$inventory.evaluateComponents($artifactsWithoutLicense)) - -#if (!$components.isEmpty()) -

- Für einige Komponenten konnten kein Bezug zur Lizenzierung hergestellt werden. Diese Komponenten werden - nachfolgend aufgelistet. -

- - - Komponenten ohne Lizenz$reportContext.inContextOf() - - - - - - - Komponente - Artefakt(e) - - - - - #foreach($component in $components) - #set($groups=$inventory.evaluateComponent($component)) - #foreach($name in $groups) - #set($hasNotice=$inventory.hasNotice($component)) - - #if($hasNotice) - - - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - - - #else - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - #end - #set($addParagraph=false) - #foreach($artifact in $name)#if($artifact.getGroupId()) - #if($addParagraph) - #end$artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId())#else - $report.xmlEscapeArtifactId($artifact.getId())#end - #set($addParagraph=true)#end - - - #end - #end - - -
-#else -

- Es wurden keine Komponenten ohne Lizenzbezug festgestellt. -

-#end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-license-usage.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-license-usage.dita.vt deleted file mode 100644 index fa50c7feb..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-license-usage.dita.vt +++ /dev/null @@ -1,34 +0,0 @@ -#parse("META-INF/templates/de/inventory-report-bom/macros/tpc_inventory-license.dita.vm") - - - - $reportContext.combinedTitle("Lizenznutzung", true) -#set($effectiveLicenses=$inventory.evaluateLicenses(false)) -#set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) - -

- Lizenzen werden von einzelnen oder mehreren Komponenten genutzt werden. Im Folgenden werden die Komponenten - in Bezug zur Lizenz aufgeführt. -

- - -#foreach($license in $effectiveLicensesRepresented) - #if($inventory.isSubstructureRequired($license, $effectiveLicensesRepresented) == false) - #insertLicenseArtifactTopic($license) - #else - - $report.xmlEscapeLicense($license) Variants - -

- $license wird als ReprĂsentant für alle Ăhnlichen Lizenzen mit Variationen oder Modifikationen - aufgeführt. Im entsprechenden Unterkapitel werden die unterschiedlichen AusprĂgungen von $license - separat dargestellt. -

- #foreach($effLicense in $inventory.getLicensesRepresentedBy($license)) - #insertLicenseArtifactTopic($effLicense) - #end - -
- #end -#end -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt deleted file mode 100644 index 869df9bdb..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt +++ /dev/null @@ -1,132 +0,0 @@ -#parse("META-INF/templates/de/inventory-report-bom/macros/tpc_inventory-license.dita.vm") - - - - $reportContext.combinedTitle("Effektive Lizenzen", true) -#set($effectiveLicenses=$inventory.evaluateLicenses(false)) -#set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) -#set($termsCategorization=$inventoryReportAdapter.categorizeTerms($effectiveLicensesRepresented)) -#set($termsWithOptions=$termsCategorization.getTermsWithOptions()) -#set($termsNoOptions=$termsCategorization.getTermsNoOptions()) -#set($atomicTerms=$termsCategorization.getAtomicTerms()) - -

- Dieses Kapitel stellt die Lizenzen dar, die als effektive und verbindliche Lizenzen im Zusammenhang mit der - Software abgeleitet wurden. -

-

- In der Tabelle Lizenzoptionen$reportContext.inContextOf() - werden Auswahlmöglichkeiten für den EmpfĂnger der Software dokumentiert. -

-

- Die Tabelle Effektive Lizenzen - beinhaltet die effektiven Lizenzen im Überblick. -

-

- Es ist zu berücksichtigen, dass eine Komponente mehreren effektiven Lizenzen zugeordnet sein kann. - Dabei werden die jeweiligen Einzellizenzen als effektive Lizenz geführt. Dies gilt ebenfalls für Einzellizenzen - von Lizenzoptionen. -

- #if ($inventory.isFootnoteRequired($effectiveLicenses, $effectiveLicensesRepresented)) - Lizenzvariationen werden als einzelne Lizenz geführt. Die spezifische AusprĂgung der Lizenz - kann vom der Standardlizenzvolage abweichen. Die Varianten werden in den entsprechenden Kapitel detailliert. - #end - -## License Options (not necessarily expressions) - #if (!$termsWithOptions.isEmpty()) - - Lizenzoptionen$reportContext.inContextOf() - - - - - - Lizenzoption - Anzahl der Komponenten - - - - #foreach($licenseData in $termsWithOptions) - #set($license=$licenseData.get("Canonical Name")) - #set($componentCount=$inventory.countComponents($license)) - - #if ($inventory.isLicenseSubstructureRequired($license, $effectiveLicensesRepresented)) - - - $report.xmlEscapeLicense($license) - - - #else - - - $report.xmlEscapeLicense($license) - - - #end - - - $componentCount - - - - #end - - -
- #end - - - Effektive Lizenzen$reportContext.inContextOf() - - - - - - - - Effektive Lizenz - SPDX Id - OSI Status - Anzahl der Komponenten - - - -#foreach($licenseData in $atomicTerms) -#set($license=$licenseData.get("Canonical Name")) -#set($folder=$inventory.getLicenseFolder($license)) -#set($componentCount=$inventory.countComponents($license)) -#set($licenseData=$inventory.findMatchingLicenseData($license)) - -#if ($inventory.isSubstructureRequired($license, $effectiveLicensesRepresented)) - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - - #if ($licenseData)#if ($licenseData.get("OSI Status"))$licenseData.get("OSI Status")#else #end#else #end - -#else - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - - #if($licenseData)#if($licenseData.get("OSI Status"))$licenseData.get("OSI Status")#else #end#else #end - -#end - - - $componentCount - - - -#end - - -
- -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/dependencies/tpc_dependencies-report.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/dependencies/tpc_dependencies-report.dita.vt similarity index 75% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/dependencies/tpc_dependencies-report.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/dependencies/tpc_dependencies-report.dita.vt index 1f65d7150..69482fe29 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/dependencies/tpc_dependencies-report.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/dependencies/tpc_dependencies-report.dita.vt @@ -1,73 +1,74 @@ - - - -#macro(provided $provided) -#if($provided == "provided") (provided)#end -#end -#macro(optional $optional) -#if($optional) (optional)#end -#end -#macro(dep $dependency) - - ${dependency.name} - ${dependency.groupId} / ${dependency.artifactId}#provided($dependency.scope)#optional($dependency.optional) - -#end - Dependencies - -#if(!$internalDependencies.dependencies.isEmpty()) -
- Internal Dependencies $projectName -

- There are internal dependencies to the following artifacts: -

-

- - - - - - - Component - Group Id / Artifact Id - - - -#foreach($dependency in $internalDependencies.dependencies) -#dep($dependency) -#end - - -
-

-
-#end -#if(!$externalDependencies.dependencies.isEmpty()) -
- Dependencies $projectName -

- There are dependencies to the following third-party artifacts: -

-

- - - - - - - Component - Group Id / Artifact Id - - - -#foreach($dependency in $externalDependencies.dependencies) -#dep($dependency) -#end - - -
-

-
-#end - + + + +#macro(provided $provided) +#if($provided == "provided") (provided)#end +#end +#macro(optional $optional) +#if($optional) (optional)#end +#end +#macro(dep $dependency) + + ${dependency.name} + ${dependency.groupId} / ${dependency.artifactId}#provided($dependency.scope)#optional($dependency.optional) + +#end + + $utils.getText("dependencies.short.dependencies") + +#if(!$internalDependencies.dependencies.isEmpty()) +
+ $utils.getTexT("dependencies.short.internal-dependencies") $projectName +

+ $utils.getText("dependencies.artifact-dependencies") +

+

+ + + + + + + $utils.getText("general.short.components") + $utils.getText("general.short.group-id")/ $utils.getText("general.short.artifact-id") + + + +#foreach($dependency in $internalDependencies.dependencies) +#dep($dependency) +#end + + +
+

+
+#end +#if(!$externalDependencies.dependencies.isEmpty()) +
+ $utils.getText("dependencies.short.dependencies") $projectName +

+ $utils.getText("dependencies.third-party-artifact-dependencies") +

+

+ + + + + + + $utils.getText("general.short.component") + $utils.getText("general.short.group-id") / $utils.getText("general.short.artifact-id") + + + +#foreach($dependency in $externalDependencies.dependencies) +#dep($dependency) +#end + + +
+

+
+#end +
\ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-modified.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-modified.dita.vt deleted file mode 100644 index 6c9c32e1b..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-modified.dita.vt +++ /dev/null @@ -1,29 +0,0 @@ -## load macros from other files -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/assessment-report/macros/assessment-report.vm") -## -## main template content - - - - $reportContext.combinedTitle("Effective Vulnerabilities by Asset", true) -## - #set($assets = $assessmentReportAdapter.getAssets()) -## - - #if ($assets.isEmpty) - No assets have been identified. - #else -

- The following table provides information on the severity of vulnerabilities for each individual asset. - Vulnerabilities may be counted several times in case these apply for multiple assets and their parts. -

-

- The table shows the modified severities applying asset-specific assessment details. - Column Assessed indicates to which extent the vulnerabilities have been analyzed. If - no modified severity is available the unmodified severity is applied. -

- #assetAssessmentSummary("asset-assessment-summary-effective", $assets, true) - #end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt deleted file mode 100644 index b38a3ec43..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/assessment-report/tpc_asset-assessment-overview-unmodified.dita.vt +++ /dev/null @@ -1,29 +0,0 @@ -## load macros from other files -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/assessment-report/macros/assessment-report.vm") -## -## main template content - - - - $reportContext.combinedTitle("Associated Vulnerabilities by Asset", true) -## - #set($assets = $assessmentReportAdapter.getAssets()) -## - - #if ($assets.isEmpty) - No assets have been identified. - #else -

- The following table provides information on the severity of vulnerabilities for each individual asset. - Vulnerabilities may be counted several times in case these apply for multiple assets and their parts. -

-

- The table shows the original severity without any assessment details and resulting severity adjustments. - Column Assessed indicates to which extent the vulnerabilities have been analyzed on - asset-level. -

- #assetAssessmentSummary("asset-assessment-summary-associated", $assets, false) - #end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/asset-report.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/asset-report.properties.vt deleted file mode 100644 index 48576a665..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/asset-report.properties.vt +++ /dev/null @@ -1,23 +0,0 @@ -# General purpose variables required for the following properties -#set($assets = $assetAdapter.listAssets()) - -#set($artifacts = []) -#foreach($asset in $assets) - #set($unused = $artifacts.add($assetAdapter.getRelatedArtifacts($asset))) -#end - -# Switch to be used on an overview level -# If no assets are listed in the inventory 'false'; 'true' otherwise -#set($assetsContainedSwitch = true) -#if($assets.isEmpty()) - #set($assetsContainedSwitch = false) -#end -ae.inventory.assets.contained=$assetsContainedSwitch - -# Switch to be used on an overview level -# If all assets do not contain any components 'false'; 'true' otherwise -#set($componentsContainedSwitch = true) -#if($artifacts.isEmpty()) - #set($componentsContainedSwitch = false) -#end -ae.inventory.assets.contain.components=$componentsContainedSwitch \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-asset-info.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-asset-info.vm deleted file mode 100644 index 9a95873df..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-asset-info.vm +++ /dev/null @@ -1,50 +0,0 @@ -## -## Lists all components which are contained in an asset to improve tracking of asset -> component relationships. -## -#macro(containedComponentsTable $artifacts) - #if ($artifacts.size() > 0) - -

- Listed below are all components containing vulnerabilities which are associated with this asset. -

- - - - - - - - - - Name - Id - Version - - - - - #foreach ($artifact in $artifacts) - - - #if($report.isInventoryVulnerabilityReportEnabled()) - - $report.xmlEscapeString($artifact.getComponent()) - - #else - $report.xmlEscapeString($artifact.getComponent()) - #end - - $report.xmlEscapeString($artifact.getId()) - - $report.xmlEscapeGAV($artifact.getVersion()) - - - #end - - -
- #else - There are no components contained in this asset. - #end -#end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-license.dita.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-license.dita.vm deleted file mode 100644 index 3807c4852..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/asset-report-bom/macros/tpc_inventory-license.dita.vm +++ /dev/null @@ -1,133 +0,0 @@ -#macro (insertLicenseAssetTopic $license) - #set($folder=$inventory.getLicenseFolder($license)) - #set($assetLicenseDataList=$assetData.evaluateAssets($license)) - #if(!$assetLicenseDataList.isEmpty()) - - $report.xmlEscapeLicense($license) - -

- The following table lists all assets that are licensed under $report.xmlEscapeString($license). - #if($folder) - Information with respect to the license or contract can be found in - $report.xmlEscapeString($license) - [external]. - #end -

-

- - - - - - - - Type - Name / Repository - Version / Tag - - - - #foreach($assetLicenseData in $assetLicenseDataList) - - - $report.xmlEscapeString($assetLicenseData.getAssetType()) - - - $report.xmlEscapeArtifactId($assetLicenseData.getAssetName()) - - - $report.xmlEscapeGAV($assetLicenseData.getAssetVersion()) - - - #end - - -
-

- -
- #end -#end -#macro (insertLicenseTable $id $title $licenseList $handleSubstructure) - -$title$reportContext.inContextOf() - - - - - - - - - License - SPDX Id - OSI Status - Open CoDE Approval - Count - - -#if($report.isIncludeInofficialOsiStatus()) -#set($osiStatusMap = { - "approved" : "approved", - "submitted" : "submitted", - "not submitted" : "not submitted", - "pending" : "pending", - "withdrawn" : "withdrawn", - "rejected" : "rejected", - "ineligible" : "ineligible", - "unclear" : "unclear" -}) -#else -#set($osiStatusMap = { - "approved" : "approved" -}) -#end -#set($openCoDEStatusMap = { - "approved" : "yes", - "(approved)" : "(yes)", - "not approved" : "no" -}) -#set($approved="approved") - $report.isIncludeInofficialOsiStatus() - - #foreach($license in $licenseList) - #if (!$license.contains(" + ")) - #set($licenseData=$inventory.findMatchingLicenseData($license)) - - #if ($handleSubstructure && $assetData.isLicenseSubstructureRequired($license)) - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - #if ($licenseData) - #set($mappedStatus=$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap)) - #if ($mappedStatus)$mappedStatus#end - #else #end - #if ($licenseData) - #set($mappedStatus=$reportContext.map($licenseData.get("Open CoDE Status"), $openCoDEStatusMap)) - #if ($mappedStatus)$mappedStatus#end - #else #end - #else - - - $report.xmlEscapeLicense($license) - - - #if ($licenseData && $utils.notEmpty($licenseData.get('SPDX Id')))$report.xmlEscapeString($licenseData.get('SPDX Id'))#else #end - #if ($licenseData)$reportContext.map($licenseData.get("OSI Status"), $osiStatusMap, " ")#else #end - #if ($licenseData)$reportContext.map($licenseData.get("Open CoDE Status"), $openCoDEStatusMap, " ")#end - #end - - - $assetData.countAssetsWithRepresentedAssociatedLicense($license, $handleSubstructure) - - - - #end - #end - - -
-#end \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/inventory-report.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/inventory-report.properties.vt deleted file mode 100644 index ad28d1055..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/inventory-report.properties.vt +++ /dev/null @@ -1,20 +0,0 @@ -# General purpose variables required for the following properties -#set($componentNoticeList=$inventory.evaluateComponentNotices()) -#set($artifactNoticeList = []) -#foreach($componentNotice in $componentNoticeList) - #set($unused = $artifactNoticeList.addAll($componentNotice.getArtifactNotices())) -#end -#set($notices = []) -#foreach($notice in $artifactNoticeList) - #set($unused = $notices.add($notice)) -#end -# Switch to be used on a license details level -# If no notices are available across all components switch is 'false'; 'true' otherwise -#set($noticesSwitch = true) -#if($notices.isEmpty()) - #set($noticesSwitch = false) -#end -ae.inventory.component.license.details.switch=$noticesSwitch - -#set($artifactsWithoutLicense=$inventoryReportAdapter.getArtifactsWithoutLicense()) -ae.inventory.report.bom.count.artifacts.nolicense=$artifactsWithoutLicense.size() \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt deleted file mode 100644 index b55c1e762..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt +++ /dev/null @@ -1,76 +0,0 @@ - - - - $reportContext.combinedTitle("Artifacts", true) - -#set($components=$inventory.evaluateComponentsInContext("artifact")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) -#if($components.isEmpty()) -

- There are no individual . -

-#else -

- The following table lists all included in the software covered by - this document. The list is organized by components to group the artifacts. -

-

- - Artifacts$reportContext.inContextOf() - - - - - - - Component - Artifacts / Packages / Web Modules - Effective License(s) - - - - -#foreach($component in $components) - #set($groups=$inventory.evaluateComponent($component)) - #foreach($name in $groups) - #set($hasNotice=$inventory.hasNotice($component)) - - #if($hasNotice) - - - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - - - #else - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - #end - #set($addParagraph=false) - #foreach($artifact in $name)#if($artifact.getGroupId()) - #if($addParagraph) - #end$artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId())#else - $report.xmlEscapeArtifactId($artifact.getId())#end - #set($addParagraph=true)#end - - #set($licenses=$inventory.getEffectiveLicenses($name.get(0))) - #set($licensesAsString=$inventory.getEffectiveLicense($name.get(0))) - #if($licenses.isEmpty()) -   - #else - -## preserve formating to achive proper line-breaks -#foreach($license in $licenses)#if($licensesInEffect.contains($license))$report.xmlEscapeLicense($license) -#else$report.xmlEscapeLicense($license) -#end#end - - #end - - #end -#end - - -
-

-#end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt deleted file mode 100644 index 95c05633f..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt +++ /dev/null @@ -1,12 +0,0 @@ - - - - $reportContext.combinedTitle("Bill of Materials", true) - $reportContext.reportInventoryVersion - -

- In the subsequent chapters a comprehensive list of the asset covered by $reportContext.reportInventoryName $reportContext.reportInventoryVersion is provided. - A license overview summarises all licenses evaluated for $reportContext.reportInventoryName. For each license the artefacts associated with - this license is are listed. -

- -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-license-usage.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-license-usage.dita.vt deleted file mode 100644 index b1a954c9d..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-license-usage.dita.vt +++ /dev/null @@ -1,34 +0,0 @@ -#parse("META-INF/templates/en/inventory-report-bom/macros/tpc_inventory-license.dita.vm") - - - - $reportContext.combinedTitle("License Usage", true) -#set($effectiveLicenses=$inventory.evaluateLicenses(false)) -#set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) - -

- Licenses are used by several or individual components. In the following the components are listed for - each effective license. -

- - -#foreach($license in $effectiveLicensesRepresented) - #if($inventory.isSubstructureRequired($license, $effectiveLicensesRepresented) == false) - #insertLicenseArtifactTopic($license) - #else - - $report.xmlEscapeLicense($license) Variants - -

- $license is representative of all licenses with variations, - characteristics and modifications of the original license template. In this subchapter, - all these license variations, which are represented by the $license, - are listed individually.

- #foreach($effLicense in $inventory.getLicensesRepresentedBy($license)) - #insertLicenseArtifactTopic($effLicense) - #end - -
- #end -#end -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt deleted file mode 100644 index b1f7168e1..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt +++ /dev/null @@ -1,77 +0,0 @@ - - - - $reportContext.combinedTitle("Packages", true) - -#set($components=$inventory.evaluateComponentsInContext("package")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) -#if($components.isEmpty()) -

- There are no individual . -

-#else -

- The following table lists all included in the software covered by - this document. The list is organized by components to group the packages. -

-

- - Packages$reportContext.inContextOf() - - - - - - - Component - Packages - Effective License(s) - - - - - -#foreach($component in $components) - #set($groups=$inventory.evaluateComponent($component)) - #foreach($name in $groups) - #set($hasNotice=$inventory.hasNotice($component)) - - #if($hasNotice) - - - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - - - #else - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - #end - #set($addParagraph=false) - #foreach($artifact in $name)#if($artifact.getGroupId()) - #if($addParagraph) - #end$artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId())#else - $report.xmlEscapeArtifactId($artifact.getId())#end - #set($addParagraph=true)#end - - #set($licenses=$inventory.getEffectiveLicenses($name.get(0))) - #set($licensesAsString=$inventory.getEffectiveLicense($name.get(0))) - #if($licenses.isEmpty()) -   - #else - -## preserve formating to achive proper line-breaks -#foreach($license in $licenses)#if($licensesInEffect.contains($license))$report.xmlEscapeLicense($license) -#else$report.xmlEscapeLicense($license) -#end#end - - #end - - #end -#end - - -
-

-#end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt deleted file mode 100644 index fae619501..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt +++ /dev/null @@ -1,77 +0,0 @@ - - - - $reportContext.combinedTitle("Web Modules", true) - -#set($components=$inventory.evaluateComponentsInContext("web-module")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) -#if($components.isEmpty()) -

- There are no individual . -

-#else -

- The following table lists all included in the software covered by - this document. The list is organized by components to group the web modules. -

-

- - Web Modules$reportContext.inContextOf() - - - - - - - Component - Web Module(s) - Effective License(s) - - - - - -#foreach($component in $components) - #set($groups=$inventory.evaluateComponent($component)) - #foreach($name in $groups) - #set($hasNotice=$inventory.hasNotice($component)) - - #if($hasNotice) - - - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - - - #else - $report.xmlEscapeComponentName($component.getOriginalComponentName()) - #end - #set($addParagraph=false) - #foreach($artifact in $name)#if($artifact.getGroupId()) - #if($addParagraph) - #end$artifact.getGroupId() / $artifact.getArtifactId() - $report.xmlEscapeArtifactId($artifact.getId())#else - $report.xmlEscapeArtifactId($artifact.getId())#end - #set($addParagraph=true)#end - - #set($licenses=$inventory.getEffectiveLicenses($name.get(0))) - #set($licensesAsString=$inventory.getEffectiveLicense($name.get(0))) - #if($licenses.isEmpty()) -   - #else - -## preserve formating to achive proper line-breaks -#foreach($license in $licenses)#if($licensesInEffect.contains($license))$report.xmlEscapeLicense($license) -#else$report.xmlEscapeLicense($license) -#end#end - - #end - - #end -#end - - -
-

-#end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-cert.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-cert.dita.vt deleted file mode 100644 index e63b741e3..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-cert.dita.vt +++ /dev/null @@ -1,134 +0,0 @@ -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-cert.vm") - - - - $reportContext.combinedTitle("Security Advisories", true) -## -#set ($securityAdvisories = $vulnerabilityAdapter.getSecurityAdvisories()) -## -## see AdvisoryMetaData attributes -#set ($securityAdvisoriesUnaffected = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "unaffected")) -#set ($securityAdvisoriesUnreviewed = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "unclassified")) -#set ($securityAdvisoriesNew = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "new")) -#set ($securityAdvisoriesInReview = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "in review")) -#set ($securityAdvisoriesReviewed = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "reviewed")) -## -#set ($queryPeriod = $vulnerabilityAdapter.getAdvisorPeriodicQueryPeriod()) -## - -## -#if ($securityAdvisories.isEmpty()) -

- No security advisories have been identified for the query period#if($queryPeriod) ($queryPeriod)#end. -

-## -#else ## !$securityAdvisories.isEmpty() -

- The following security advisories have been detected for the query period#if($queryPeriod) ($queryPeriod)#end. -

-## new -
- New Security Advisories - -#if (!$securityAdvisoriesNew.isEmpty()) -

- The following security advisories are new in the given context and have not yet been considered - during vulnerability assessments. -

-

-#securityAdvisoryOverviewTable("new_cert", "New Security Advisories", $securityAdvisoriesNew) -

-#else -

- No security advisories are present in the query period that are considered new in this context and - have not yet been considered during vulnerability assessments. -

-#end - -
-## in review -
- Security Advisories in Review - -#if (!$securityAdvisoriesInReview.isEmpty()) -

- The following security advisories are new in the query period. The review of security advisories and - verification of related vulnerability assessments are in progress. -

-

-#securityAdvisoryOverviewTable("in_review_cert", "Security Advisories in Review", $securityAdvisoriesInReview) -

-#else -

- No security advisories are present in the query period that are currently under review. -

-#end - -
-## reviewed -
- Reviewed Security Advisories - -#if (!$securityAdvisoriesReviewed.isEmpty()) -

- The following security advisories are new in the query period. These advisories have already been - considered in the assessment of the related vulnerabilities. -

-

-#securityAdvisoryOverviewTable("reviewed_cert", "Reviewed Security Advisories", $securityAdvisoriesReviewed) -

-#else -

- No security advisories are present in the query period that have already been considered in the - assessment of the related vulnerabilities. -

-#end - -
-## unaffected -
- Not relevant Security Advisories - -#if (!$securityAdvisoriesUnaffected.isEmpty()) -

- The following security advisories are included in the query period. - The related vulnerabilities are not relevant in this context. - The advisories are listed to provide a comprehensible report. -

-

-#securityAdvisoryOverviewTable("unaffected_cert", "Not relevant Security Advisories", $securityAdvisoriesUnaffected) -

-#else -

- No security advisories are present in the query period that are considered irrelevant in this - context. -

-#end - -
-## unclassified -#if (!$report.isFilterAdvisorySummary()) -
- Security Advisories Summary - -#if (!$securityAdvisoriesUnreviewed.isEmpty()) -

- The following security advisories are not present in the query period, but have been matched by - the affected components. - The advisories are listed to provide a comprehensible report. -

-

-#securityAdvisoryOverviewTable("unclassified_cert", "Security Advisories Summary", $securityAdvisoriesUnreviewed) -

-#else -

- There are no security advisories that are not present in the query period, but were matched by the - affected components. -

-#end - -
-#end -#end - -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt deleted file mode 100644 index 80ded5893..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt +++ /dev/null @@ -1,15 +0,0 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") -#set($threshold=$report.getVulnerabilityScoreThreshold()) - - - - $reportContext.combinedTitle("Vulnerability Notice", true) - -

- In general, only vulnerabilities with Scoremax higher or equal a threshold of $threshold are - considered relevant in the given context. Vulnerabilities with Scoremax lower than $threshold - are categorized as insignificant vulnerabilities by default. -

- -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt deleted file mode 100644 index 72f452fc9..000000000 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt +++ /dev/null @@ -1,92 +0,0 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") - - - - $reportContext.combinedTitle("Vulnerability Statistics", true) -## -#set ($vulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesAll()) -#set ($initialVulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesInitialInventoryAll()) -## - -

- The following table shows statistics for the identified vulnerabilities. The vulnerabilities are included - in the statistics with their original unmodified severity. -

-

-#statisticsOverviewTable("vulnerabilities_statistics_table_unmodified_all", "Vulnerability Statistics$reportContext.inContextOf()", $initialVulnerabilities, "", false) -

- - -## iterate over all advisories that shall have their own overview table -#foreach($advisory in $report.getGenerateOverviewTablesForAdvisories()) - #set ($advisoryName = $advisory.getWellFormedName()) - #set ($advisoryIdentifier = $advisory.name()) -## -

- The following table shows statistics for the identified vulnerabilities with advisory information from - $advisoryName. The vulnerabilities are included in the statistics with their original unmodified severity. -

-

-#statisticsOverviewTable("vulnerabilities_statistics_table_unmodified_$report.xmlEscapeStringAttribute($advisoryIdentifier.toLowerCase())", "Vulnerability Statistics with $report.xmlEscapeString($advisoryName) Advisories$reportContext.inContextOf()", $initialVulnerabilities, $advisory, false) -

-#end - - -

- The following table shows statistics for the identified vulnerabilities. The vulnerabilities are included - in the statistics with their modified severity if available or their unmodified severity otherwise. -

-

-#statisticsOverviewTable("vulnerabilities_statistics_table_modified_all", "Context Vulnerability Statistics$reportContext.inContextOf()", $vulnerabilities, "", true) -

- - -## iterate over all advisories that shall have their own modified overview table -#foreach($advisory in $report.getGenerateOverviewTablesForAdvisories()) - #set ($advisoryName = $advisory.getWellFormedName()) - #set ($advisoryIdentifier = $advisory.name()) -## -

- The following table shows statistics for the identified vulnerabilities with advisory information from - $advisoryName. The vulnerabilities are included in the statistics with their modified severity if available or - their unmodified severity otherwise. -

-

-#statisticsOverviewTable("vulnerabilities_statistics_table_modified_$report.xmlEscapeStringAttribute($advisoryIdentifier.toLowerCase())", "Context Vulnerability Statistics with $report.xmlEscapeString($advisoryName) Advisories$reportContext.inContextOf()", $vulnerabilities, $advisory, true) -

-#end -

- The following table shows statistics for the identified vulnerabilities from CISA KEV -

-

- - CISA KEV vulnerabilities statistics - - - - - - - Exploited in the Wild - Total - Percentage - - - - - KNOWN - $vulnerabilityAdapter.totalOfKevEntries() - $vulnerabilityAdapter.percentageOfKev()% - - - UNKNOWN - $vulnerabilityAdapter.totalOfNotKevEntries() - $vulnerabilityAdapter.percentageOfNotKev()% - - - -
-

- -
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/inventory-report.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/inventory-report.properties.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/inventory-report.properties.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/inventory-report.properties.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/macros/tpc_inventory-license.dita.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/macros/tpc_inventory-license.dita.vm similarity index 87% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/macros/tpc_inventory-license.dita.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/macros/tpc_inventory-license.dita.vm index 637f957a9..f3a3460f2 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/macros/tpc_inventory-license.dita.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/macros/tpc_inventory-license.dita.vm @@ -6,24 +6,24 @@ $report.xmlEscapeLicense($license)

- The following table lists all components that are licensed or contains subcomponents under $license. + $utils.getText("inventory-report-bom.license-artifact-topic") #if($folder) - Information with respect to the license or contract can be found in + $utils.getText("inventory-report-bom.license-artifact-topic-location") $license [external]. #end

- Components under $license.trim()$reportContext.inContextOf() + $utils.getText("inventory-report-bom.short.components-under") $license.trim()$reportContext.inContextOf() - Component - Artifact / Package / Web Module + $utils.getText("general.short.component") + $utils.getText("general.short.artifacts") / $utils.getText("general.short.packages") / $utils.getText("general.short.web-modules") Version diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt similarity index 79% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt index 13f2c76ab..b117c9541 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-artifact-report-effective.dita.vt @@ -1,31 +1,27 @@ - + - $reportContext.combinedTitle("Artefakte", true) + $reportContext.combinedTitle($utils.getText("general.short.artifacts"), true) -#set($components=$inventory.evaluateComponentsInContext("artifact")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) + #set($components=$inventory.evaluateComponentsInContext("artifact")) + #set($licensesInEffect=$inventory.evaluateLicenses(false)) + #if($components.isEmpty()) -

- Keine . -

+

$utils.getText("inventory-report-bom.individual-artifact")

#else -

- Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. - Die Tabelle ist nach Komponenten geordnet, um die Artefakte zu gruppieren. -

+

$utils.getText("inventory-report-bom.artifact-table-descr")

- Artefakte$reportContext.inContextOf() + $utils.getText("general.short.artifacts") $reportContext.inContextOf() - Komponente - Artefakt(e) - Effektive Lizenz(en) + $utils.getText("general.short.components") + $utils.getText("general.short.artifacts") / $utils.getText("general.short.packages") / $utils.getText("general.short.web-modules") + $utils.getText("inventory-report-bom.short.effective-licenses") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt new file mode 100644 index 000000000..aa7126747 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-bill-of-materials.dita.vt @@ -0,0 +1,12 @@ + + + + + $reportContext.combinedTitle($utils.getText("inventory-report-bom.short.bill-of-materials"), true) - $reportContext.getReportInventoryVersion() + +

+ $utils.getText("inventory-report-bom.bill-of-materials") +

+ + +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-component-license-details.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-component-license-details.dita.vt similarity index 79% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-component-license-details.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-component-license-details.dita.vt index 75f58b9ab..debe3c93c 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-component-license-details.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-component-license-details.dita.vt @@ -1,13 +1,12 @@ - + - $reportContext.combinedTitle("License Notices", true) + $reportContext.combinedTitle($utils.getText("inventory-report-bom.short.license-notices"), true) #set($componentNoticeList=$inventory.evaluateComponentNotices()) #set($licensesInEffect=$inventory.evaluateLicenses(false)) + #if($componentNoticeList.isEmpty()) - - No component with license notices covered. - + $utils.getText("inventory-report-bom.no-component-licenses") #else #foreach($componentNotice in $componentNoticeList) @@ -19,18 +18,18 @@ #if(!$assets.isEmpty()) ## Assets Table start
- Assets covering $report.xmlEscapeString($componentNotice.getComponentName()) + $utils.getText("inventory-report-bom.short.assets-covering") $report.xmlEscapeString($componentNotice.getComponentName())
- Assets of Component $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() + $utils.getText("inventory-report-bom.short.assets-of-component") $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() - Asset Name - Asset Type - Asset Version + $utils.getText("general.short.asset-name") + $utils.getText("general.short.asset-type") + $utils.getText("general.short.asset-version") @@ -60,18 +59,18 @@ ## Artifacts Table start
- Artifacts of Component $report.xmlEscapeString($componentNotice.getComponentName()) + $utils.getText("inventory-report-bom.short.artifacts-of-component") $report.xmlEscapeString($componentNotice.getComponentName())
- Artifacts of Component $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() + $utils.getText("inventory-report-bom.short.artifacts-of-component") $componentNotice.getComponentName()$reportContext.inContextOf()$artifactNotice.getDiscriminator() - Artifact / Package / Web Module + $utils.getText("general.short.artifacts") / $utils.getText("general.short.packages") / $utils.getText("general.short.web-modules") Version - Effective License(s) + $utils.getText("inventory-report-bom.short.effective-licenses") @@ -107,18 +106,15 @@ ## insert notice
- License Notices + $utils.getText("inventory-report-bom.short.license-notices") #set($notice=$artifactNotice.getNotice()) #if($notice.isEmpty())

- The herein covered software distribution contains + $utils.getText("inventory-report-bom.license-notice") $componentNotice.getComponentName().

#if($componentNotice.getLicense()) -

- In the present version, $componentNotice.getComponentName() is subject to the terms - of the $componentNotice.getLicense(). -

+

$utils.getText("inventory-report-bom.component-license")

#end #else $notice.trim() diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-components-no-license.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-components-no-license.dita.vt similarity index 79% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-components-no-license.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-components-no-license.dita.vt index d16e399f9..7065183c2 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-components-no-license.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-components-no-license.dita.vt @@ -1,19 +1,21 @@ -#parse("META-INF/templates/en/asset-report-bom/macros/tpc_inventory-license.dita.vm") - +#parse("META-INF/templates/asset-report-bom/macros/tpc_inventory-license.dita.vm") + $reportContext.combinedTitle("Components without License", true) #set($artifactsWithoutLicense=$inventoryReportAdapter.getArtifactsWithoutLicense()) #set($components=$inventory.evaluateComponents($artifactsWithoutLicense)) - + $reportContext.combinedTitle("Artifacts without License", true) + #set($artifactsWithoutLicense=$inventoryReportAdapter.getArtifactsWithoutLicense()) + #set($components=$inventory.evaluateComponents($artifactsWithoutLicense)) + + + #if (!$components.isEmpty()) -

- Several components have no license information associated. These components and the identified artifacts are - listed in the following table. -

+

$utils.getText("inventory-report-bom.component-with-no-licenses")

- Components without License$reportContext.inContextOf() + $utils.getText("inventory-report-bom.component-with-no-licenses-title") @@ -56,7 +58,7 @@
#else

- No components without license detected. + $utils.getText("inventory-report-bom.no-component-without-license")

#end diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-license-usage.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-license-usage.dita.vt new file mode 100644 index 000000000..3ae4c8de2 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-license-usage.dita.vt @@ -0,0 +1,29 @@ +#parse("META-INF/templates/inventory-report-bom/macros/tpc_inventory-license.dita.vm") + + + + $reportContext.combinedTitle("License Usage", true) + #set($effectiveLicenses=$inventory.evaluateLicenses(false)) + #set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) + + + +

$utils.getText("inventory-report-bom.effective-license-table")

+ + +#foreach($license in $effectiveLicensesRepresented) + #if($inventory.isSubstructureRequired($license, $effectiveLicensesRepresented) == false) + #insertLicenseArtifactTopic($license) + #else + + $report.xmlEscapeLicense($license) $utils.getText("general.short.variants") + +

$utils.getText("inventory-report-bom.license-variations")

+ #foreach($effLicense in $inventory.getLicensesRepresentedBy($license)) + #insertLicenseArtifactTopic($effLicense) + #end + +
+ #end +#end +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt similarity index 70% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt index bd934705f..062c89da9 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-licenses-effective.dita.vt @@ -1,46 +1,33 @@ -#parse("META-INF/templates/en/inventory-report-bom/macros/tpc_inventory-license.dita.vm") - +#parse("META-INF/templates/inventory-report-bom/macros/tpc_inventory-license.dita.vm") + - $reportContext.combinedTitle("Licenses in Effect", true) -#set($effectiveLicenses=$inventory.evaluateLicenses(false)) -#set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) -#set($termsCategorization=$inventoryReportAdapter.categorizeTerms($effectiveLicensesRepresented)) -#set($termsWithOptions=$termsCategorization.getTermsWithOptions()) -#set($termsNoOptions=$termsCategorization.getTermsNoOptions()) -#set($atomicTerms=$termsCategorization.getAtomicTerms()) - -

- This chapter outlines the different licenses considered effective within the given context. - - Table License Options$reportContext.inContextOf() provides an - outline of licenses options for the recipient of the software. + $reportContext.combinedTitle($utils.getText("inventory-report-bom.short.licenses-in-effect"), true) + #set($effectiveLicenses=$inventory.evaluateLicenses(false)) + #set($effectiveLicensesRepresented=$inventory.getRepresentedLicenses($effectiveLicenses)) + #set($termsCategorization=$inventoryReportAdapter.categorizeTerms($effectiveLicensesRepresented)) + #set($termsWithOptions=$termsCategorization.getTermsWithOptions()) + #set($termsNoOptions=$termsCategorization.getTermsNoOptions()) + #set($atomicTerms=$termsCategorization.getAtomicTerms()) - In Licenses in Effect$reportContext.inContextOf() - provides an overview of the licenses in effect. In the following paragraphs the individual components are listed - for each effective license. -

-

- A component may be subject to several licenses in effect. The individual parts of a license option are also - listed as effective license. -

+ +

$utils.getText("inventory-report-bom.different-effective-licenses")

#if ($inventory.isFootnoteRequired($effectiveLicenses, $effectiveLicensesRepresented)) - License variations are represented as a single effective license. The concrete - license may differ from the standard license template. The variations are detailed in the corresponding paragraphs. + $utils.getText("inventory-report-bom.different-effective-licenses-footnote") #end ## License Options (not necessarily expressions) #if (!$termsWithOptions.isEmpty()) - License Options$reportContext.inContextOf() + $utils.getText("general.short.license-options") $reportContext.inContextOf() - License Option - Number of Components + $utils.getText("general.short.license-options") + $utils.getText("general.short.number-of-component") @@ -74,7 +61,7 @@ #end
- Licenses in Effect$reportContext.inContextOf() + $utils.getText("inventory-report-bom.short.licenses-in-effect") $reportContext.inContextOf() @@ -82,10 +69,10 @@ - License in Effect + $utils.getText("inventory-report-bom.short.licenses-in-effect") SPDX Id OSI Status - Number of Components + $utils.getText("general.short.number-of-component") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt similarity index 81% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt index d36ab125c..9e96ac18a 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-package-report-effective.dita.vt @@ -1,31 +1,28 @@ - + - $reportContext.combinedTitle("Pakete", true) + $reportContext.combinedTitle("Packages", true) -#set($components=$inventory.evaluateComponentsInContext("package")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) -#if($components.isEmpty()) -

- Keine . -

+ #set($components=$inventory.evaluateComponentsInContext("package")) + #set($licensesInEffect=$inventory.evaluateLicenses(false)) + + + #if($components.isEmpty()) +

$utils.getText("inventory-report-bom.no-individual-package")

#else -

- Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. - Die Tabelle ist nach Komponenten organisiert um die Pakete zu gruppieren. -

+

$utils.getText("inventory-report-bom.package-table-descr")

- Paket$reportContext.inContextOf() + $utils.getText("general.short.packages") $reportContext.inContextOf() - Komponente - Paket(e) - Effektive Lizenz(en) + $utils.getText("general.short.components") + $utils.getText("general.short.packages") + $utils.getText("inventory-report-bom.short.effective-licenses") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt similarity index 81% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt index 36368a484..bdfc290b3 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/de/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-bom/tpc_inventory-webmodule-report-effective.dita.vt @@ -1,31 +1,28 @@ - + - $reportContext.combinedTitle("Webmodule", true) + $reportContext.combinedTitle("Web Modules", true) -#set($components=$inventory.evaluateComponentsInContext("web-module")) -#set($licensesInEffect=$inventory.evaluateLicenses(false)) -#if($components.isEmpty()) -

- Keine . -

+ #set($components=$inventory.evaluateComponentsInContext("web-module")) + #set($licensesInEffect=$inventory.evaluateLicenses(false)) + + + #if($components.isEmpty()) +

$utils.getText("inventory-report-bom.no-individual-web-module")

#else -

- Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. - Die Tabelle ist nach Komponenten organisiert um die Webmodule zu gruppieren. -

+

$utils.getText("inventory-report-bom.web-module-table-descr")

- Webmodule$reportContext.inContextOf() + $utils.getText("general.short.web-modules") $reportContext.inContextOf() - Komponente - Webmodul(e) - Effektive Lizenz(en) + $utils.getText("general.short.components") + $utils.getText("general.short.web-modules") + $utils.getText("inventory-report-bom.short.effective-licenses") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt similarity index 80% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt index a0d7dc27e..1108a6edb 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-diff/tpc_inventory-artifact-diff.dita.vt @@ -1,36 +1,36 @@ - - - - $reportContext.combinedTitle("Version Upgrades", true) - -
- Version Upgrades$reportContext.inContextOf() - - - - - - - - File - Version - Previous Version - - - - -#foreach($artifact in $inventory.getArtifacts())#if($artifact.getGroupId() || $artifact.getArtifactId()) - - #if($artifact.getGroupId())$report.xmlEscapeGAV($artifact.getGroupId()) / $report.xmlEscapeArtifactId($artifact.getArtifactId())#end - -$report.xmlEscapeArtifactId($artifact.getId())#if($artifact.getGroupId())#end - - $report.xmlEscapeGAV($artifact.getVersion()) - $report.xmlEscapeGAV($artifact.getPreviousVersion()) - -#end#end - - -
- -
+ + + + $reportContext.combinedTitle("Version Upgrades", true) + + + $utils.getText("inventory-report-diff.short.version-upgrades") $reportContext.inContextOf() + + + + + + + + $utils.getText("general.short.files") + Version + $utils.getText("general.short.previous-version") + + + + +#foreach($artifact in $inventory.getArtifacts())#if($artifact.getGroupId() || $artifact.getArtifactId()) + + #if($artifact.getGroupId())$report.xmlEscapeGAV($artifact.getGroupId()) / $report.xmlEscapeArtifactId($artifact.getArtifactId())#end + +$report.xmlEscapeArtifactId($artifact.getId())#if($artifact.getGroupId())#end + + $report.xmlEscapeGAV($artifact.getVersion()) + $report.xmlEscapeGAV($artifact.getPreviousVersion()) + +#end#end + + +
+ +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability-summary/svg/fig_summary.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability-summary/svg/fig_summary.svg.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability-summary/svg/fig_summary.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability-summary/svg/fig_summary.svg.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability-summary/vulnerability-summary.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability-summary/vulnerability-summary.properties.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability-summary/vulnerability-summary.properties.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability-summary/vulnerability-summary.properties.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-assets.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-assets.vm similarity index 86% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-assets.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-assets.vm index e404a9946..3c754bb63 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-assets.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-assets.vm @@ -9,7 +9,7 @@ $title
- ${assetName} Affected Components + ${assetName} $utils.getText("inventory-report-vulnerability.short.affected-components") @@ -17,8 +17,8 @@ - Component - Artifact Id + $utils.getText("general.short.component") + $utils.getText("general.short.artifact-id") Version diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-cert.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-cert.vm similarity index 77% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-cert.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-cert.vm index 9cde5be7e..2158cf5a0 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-cert.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-cert.vm @@ -16,11 +16,11 @@ Name - Source - Summary - Type - Create Date - Update Date + $utils.getText("general.short.source") + $utils.getText("general.short.summary") + $utils.getText("general.short.type") + $utils.getText("inventory-report-vulnerability.short.creation-date") + $utils.getText("inventory-report-vulnerability.short.update-date") diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm similarity index 86% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm index b10afa8e2..65c0fffdd 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm @@ -26,15 +26,15 @@ Name - Score + $utils.getText("general.short.score") #if ($includeContextSevertiyColumns) - Scorectx + $utils.getText("general.short.score")ctx #end - Severity + $utils.getText("inventory-report-vulnerability.short.severity") #if ($includeContextSevertiyColumns) - Severityctx + inventory-report-vulnerability.short.severityctx #end - Priority + $utils.getText("inventory-report-vulnerability.short.priority") Status @@ -103,7 +103,7 @@ #if ($matchingReasonsLabels.isEmpty()) - No matched vulnerable configurations. + $utils.getText("inventory-report-vulnerability.no-vulnerable-configurations") #else @@ -170,7 +170,7 @@ - Target + $utils.getText("inventory-report-vulnerability.short.target") Hyperlink @@ -225,7 +225,7 @@ #if ($latestStatusEntry) #if ($utils.notEmpty($latestStatusEntry.getRationale()))
- Rationale + $utils.getText("inventory-report-vulnerability.short.rational") $report.xmlEscapePreformattedContentString($latestStatusEntry.getRationale()) @@ -234,7 +234,7 @@ #if ($utils.notEmpty($latestStatusEntry.getRisk()))
- Risk + $utils.getText("inventory-report-vulnerability.short.risk") $report.xmlEscapePreformattedContentString($latestStatusEntry.getRisk()) @@ -243,7 +243,7 @@ #if ($utils.notEmpty($latestStatusEntry.getMeasures()))
- Measures + $utils.getText("inventory-report-vulnerability.short.measures") $report.xmlEscapePreformattedContentString($latestStatusEntry.getMeasures()) @@ -278,7 +278,7 @@ ## #if ($hasKeywords) #if ($hasTotalScore) -

Total keywords score: $keywordSetsTotalScore

+

$utils.getText("inventory-report-vulnerability.total-keyword-score") $keywordSetsTotalScore

#end
## $title @@ -290,9 +290,9 @@ Name - Category - Score - Notes + $utils.getText("general.short.category") + $utils.getText("general.short.score") + $utils.getText("general.short.notes") @@ -474,19 +474,19 @@ ## - Scheme - Source - Base - Impact - Exploitability + $utils.getText("general.short.scheme") + $utils.getText("general.short.source") + $utils.getText("general.short.base") + $utils.getText("general.short.impact") + $utils.getText("general.short.exploitability") #if ($hasTemporal) - Temporal + $utils.getText("general.short.temporal") #end #if ($hasEnvironmental) - Environmental + $utils.getText("general.short.environmental") #end #if ($hasAdjustedImpact) - Adjusted impact + $utils.getText("general.short.adjusted-impact") #end @@ -564,8 +564,8 @@ - Initial CVSS - Context CVSS + $utils.getText("inventory-report-vulnerability.short.initial-cvss") + $utils.getText("inventory-report-vulnerability.short.context-cvss") @@ -575,14 +575,14 @@ #else - The initial CVSS score chart is not available. + $utils.getText("inventory-report-vulnerability.no-initial-cvss-chart") #end #if ($chartModifiedFileExists) #else - The context CVSS score chart is not available. + $utils.getText("inventory-report-vulnerability.no-initial-cvss-chart") #end @@ -615,9 +615,9 @@ - Asset Name - Asset Type - Asset Version + $utils.getText("general.short.asset-name") + $utils.getText("general.short.asset-type") + $utils.getText("general.short.asset-version") @@ -644,7 +644,7 @@
#else - No affected assets have been identified for this vulnerability. + $utils.getText("general.no-affected-components") #end #end ## @@ -683,11 +683,11 @@ - Component - Artifact Id + $utils.getText("general.short.components") + $utils.getText("general.short.artifact-id") Version #if ($containsMsRemediationInformation) - MS Remediation + $utils.getText("inventory-report-vulnerability.short.ms-remediation") #end @@ -720,7 +720,7 @@ #else - No affected components have been identified for this vulnerability. + $utils.getText("general.no-affected-components") #end #end ## @@ -788,10 +788,10 @@ #if ($priorityData.isElevated()) #set ($labelName = "priority-severity-" + $priorityData.getResultingSeverityRange().getName()) - #labelRef($labelName) ($priorityData.getResultingScore() from base score $priorityData.getCvssScore()) + #labelRef($labelName) ($priorityData.getResultingScore() $utils.getText("inventory-report-vulnerability.from-base-score") $priorityData.getCvssScore()) #else #set ($labelName = "priority-severity-standard") - #labelRef($labelName) No elevated priority. + #labelRef($labelName) $utils.getText("inventory-report-vulnerability.no-elevated-priority") #end @@ -800,33 +800,33 @@ - Criteria - Explanation + $utils.getText("general.short.criteria") + $utils.getText("general.short.explanation") - CVSS Overall + $utils.getText("inventory-report-vulnerability.short.cvss-overall") #set ($vector = $report.xmlEscapeContentString($priorityData.getCalculator().getBaseCvssVector().toString())) #set ($link = $report.xmlEscapeContentString($priorityData.getCalculator().getBaseCvssVector().getWebEditorLink())) #if ($utils.notEmpty($vector)) -$priorityData.getCalculator().getBaseCvssVector().getCombinedCvssSource(true) provides the vector: +$priorityData.getCalculator().getBaseCvssVector().getCombinedCvssSource(true) $utils.getText("inventory-report-vulnerability.provides-the-vector") $vector #else - No CVSS vector available. + $utils.getText("inventory-report-vulnerability.no-cvss-vector") #end - Keywords + $utils.getText("general.short.keywords") #if ($priorityData.getCalculator().getKeywords() && !$priorityData.getCalculator().getKeywords().getKeywordSets().isEmpty()) #foreach($keywordSet in $priorityData.getCalculator().getKeywords().getKeywordSets())#if ($foreach.index > 0) #end$keywordSet.getName()#if ($keywordSet.getNotes()): $keywordSet.getNotes()#end#end #else - No keyword sets matched. + $utils.getText("inventory-report-vulnerability.no-keywords-matched") #end @@ -834,10 +834,9 @@ EPSS #if ($priorityData.getCalculator().getEpssData()) -This vulnerability has a $priorityData.getCalculator().getEpssData().getEpssScoreAsPercentage() chance of being exploited in the next 30 days according to FIRST. -It ranks in the top $priorityData.getCalculator().getEpssData().getTopRatedPercentileAsPercentage() of all scored vulnerabilities. + $utils.getText("inventory-report-vulnerability.chance-of-exploit") #else - No EPSS score available. + $utils.getText("inventory-report-vulnerability.no-epss-score"). #end @@ -846,25 +845,25 @@ It ranks in the top $priorityData.getCalculator().getEpssData().getTopRatedPe #set ($kev = $priorityData.getCalculator().getKevData()) #if ($kev) - This vulnerability, affecting $report.xmlEscapeString($kev.getVendor()) $report.xmlEscapeString($kev.getProduct()), has been confirmed to have been exploited in the wild. + $utils.getText("inventory-report-vulnerability.exploited-wild") #if ($kev.getRansomwareState() == "KNOWN") - Furthermore, it has been identified in ransomware campaigns. + $utils.getText("inventory-report-vulnerability.ransomware-campaigns") #end - #if ($kev.getSummary())Summary: $report.xmlEscapeString($kev.getSummary()). #end#if ($kev.getRecommendation())$report.xmlEscapeString($kev.getRecommendation())#end + #if ($kev.getSummary())$utils.getText("general.short.summary"): $report.xmlEscapeString($kev.getSummary()). #end#if ($kev.getRecommendation())$report.xmlEscapeString($kev.getRecommendation())#end #if ($kev.getNotes()) - Notes: $report.xmlEscapeString($kev.getNotes()) + $utils.getText("general.short.notes"): $report.xmlEscapeString($kev.getNotes()) #end #if ($kev.getDueDate()) - Due Date: $vulnerabilityAdapter.formatDate($kev.getDueDate()) + $utils.getText("general.short.due-date"): $vulnerabilityAdapter.formatDate($kev.getDueDate()) #end #if ($kev.getPublishDate()) - Publish Date: $vulnerabilityAdapter.formatDate($kev.getPublishDate()) + $utils.getText("general.short.publish-date"): $vulnerabilityAdapter.formatDate($kev.getPublishDate()) #end #if ($kev.getExploitDate()) - Exploit Date: $vulnerabilityAdapter.formatDate($kev.getExploitDate()) + $utils.getText("general.short.exploit-date"): $vulnerabilityAdapter.formatDate($kev.getExploitDate()) #end #else - This vulnerability has not been confirmed to have been exploited in the wild. + $utils.getText("inventory-report-vulnerability.no-exploited-wild") #end @@ -879,12 +878,12 @@ $eolReasoning.getExtendedSupportEndInfo() #else - No end-of-life (EOL) information available. + $utils.getText("inventory-report-vulnerability.no-eol") #end - Assessment + $utils.getText("inventory-report-vulnerability.short.assessment") #set ($statusReasoning = $vulnerabilityAdapter.getPriorityVulnerabilityStatusReasoning($priorityData)) #if ($statusReasoning) @@ -892,7 +891,7 @@ $eolReasoning.getExtendedSupportEndInfo() #else - No assessment information available. + $utils.getText("inventory-report-vulnerability.no-assessment") #end diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-cert.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-cert.dita.vt new file mode 100644 index 000000000..e99119e9c --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-cert.dita.vt @@ -0,0 +1,100 @@ +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-cert.vm") + + + + $reportContext.combinedTitle("Security Advisories", true) + ## + #set ($securityAdvisories = $vulnerabilityAdapter.getSecurityAdvisories()) + + ## +## see AdvisoryMetaData attributes +#set ($securityAdvisoriesUnaffected = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "unaffected")) +#set ($securityAdvisoriesUnreviewed = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "unclassified")) +#set ($securityAdvisoriesNew = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "new")) +#set ($securityAdvisoriesInReview = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "in review")) +#set ($securityAdvisoriesReviewed = $vulnerabilityAdapter.filterSecurityAdvisoriesForReviewStatus($securityAdvisories, "reviewed")) +## +#set ($queryPeriod = $vulnerabilityAdapter.getAdvisorPeriodicQueryPeriod()) +## + +## +#if ($securityAdvisories.isEmpty()) +

$utils.getText("inventory-report-vulnerability.no-security-advisories")

+## +#else ## !$securityAdvisories.isEmpty() +

$utils.getText("inventory-report-vulnerability.security-advisories")

+## new +
+ $utils.getText("inventory-report-vulnerability.short.new-security-advisories") + +#if (!$securityAdvisoriesNew.isEmpty()) +

$utils.getText("inventory-report-vulnerability.new-security-advisories")

+

+#securityAdvisoryOverviewTable("new_cert", "New Security Advisories", $securityAdvisoriesNew) +

+#else +

$utils.getText("inventory-report-vulnerability.no-new-security-advisories")

+#end + +
+## in review +
+ $utils.getText("inventory-report-vulnerability.advisories-in-review") + +#if (!$securityAdvisoriesInReview.isEmpty()) +

$utils.getText("inventory-report-vulnerability.security-advisories-in-review")

+

+#securityAdvisoryOverviewTable("in_review_cert", "Security Advisories in Review", $securityAdvisoriesInReview) +

+#else +

$utils.getText("inventory-report-vulnerability.no-security-advisories-in-review")

+#end + +
+## reviewed +
+ $utils.getText("inventory-report-vulnerability.advisories-in-review") + +#if (!$securityAdvisoriesReviewed.isEmpty()) +

$utils.getText("inventory-report-vulnerability.security-advisories-reviewed")

+

+#securityAdvisoryOverviewTable("reviewed_cert", "Reviewed Security Advisories", $securityAdvisoriesReviewed) +

+#else +

$utils.getText("inventory-report-vulnerability.no-security-advisories-reviewed")

+#end + +
+## unaffected +
+ $utils.getText("inventory-report-vulnerability.not-relevant-security-advisories") + +#if (!$securityAdvisoriesUnaffected.isEmpty()) +

$utils.getText("inventory-report-vulnerability.security-advisories-unaffected")

+

+#securityAdvisoryOverviewTable("unaffected_cert", "Not relevant Security Advisories", $securityAdvisoriesUnaffected) +

+#else +

$utils.getText("inventory-report-vulnerability.no-security-advisories-unaffected")

+#end + +
+## unclassified +#if (!$report.isFilterAdvisorySummary()) +
+ $utils.getText("inventory-report-vulnerability.security-advisories-summary") + +#if (!$securityAdvisoriesUnreviewed.isEmpty()) +

$utils.getText("inventory-report-vulnerability.security-advisories-unreviewed")

+

+#securityAdvisoryOverviewTable("unclassified_cert", "Security Advisories Summary", $securityAdvisoriesUnreviewed) +

+#else +

$utils.getText("inventory-report-vulnerability.no-security-advisories-unreviewed")

+#end + +
+#end +#end + +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt similarity index 79% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt index 08a49d7cf..164193a78 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-assets.dita.vt @@ -1,9 +1,9 @@ ## load macros from other files -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-assets.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-assets.vm") ## ## main template content - + #set($assets = $assetAdapter.listAssets()) @@ -24,7 +24,7 @@ #end #end #if (!$atLeastOneAssetWithDetails) -

No affected assets have been identified.

+

$utils.getText("general.assets-empty")

#end
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt similarity index 76% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt index 7d4c9e5e7..14912a534 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-components.dita.vt @@ -1,14 +1,15 @@ ## load macros from other files -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") ## ## main template content - + $reportContext.combinedTitle("Affected Components", true) ## #set($components = $vulnerabilityAdapter.getComponentsFromInventory()) + ## #set($atLeastOneComponentWithDetails = false) ## @@ -39,9 +40,9 @@ ## section with vulnerabilities for component #if(!$vulnerabilitiesForComponent.isEmpty())
- Vulnerabilities + $utils.getText("inventory-report-vulnerability.short.vulnerabilites") - #vulnerabilityOverview("${componentEscapedId}_vulnerabilities", "${component} Vulnerabilities", $vulnerabilitiesForComponent, true) + #vulnerabilityOverview("${componentEscapedId}_vulnerabilities", "${component}" $utils.getText("inventory-report-vulnerability.short.vulnerabilites"), $vulnerabilitiesForComponent, true)
#end @@ -50,10 +51,8 @@ #end #end - #if (!$atLeastOneComponentWithDetails) -

- No affected components have been identified. -

+ #if(!$atLeastOneComponentWithDetails) +

$utils.getText("general.no-affected-components")

#end
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt similarity index 69% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt index 5faa8783c..83cec8dc7 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-details.dita.vt @@ -1,24 +1,20 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") - +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") + $reportContext.combinedTitle("Vulnerability Details", true) ## #set($vulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesForDetails()) + ## #if($vulnerabilities.isEmpty()) -

- No vulnerabilities have been identified. -

+

$utils.getText("general.no-vulnerabilites")

#else -

- Details are provided for vulnerabilities which are either potential vulnerabilities or which have - third-party advisories. -

+

$utils.getText("inventory-report-vulnerability.vulnerability-details")

#foreach($vulnerability in $vulnerabilities) @@ -37,35 +33,35 @@ ##
- Description + $utils.getText("general.short.description")

$report.xmlEscapePreformattedContentString($vulnerability.getDescription())

- References + $utils.getText("general.short.references") - #referenceTable("${vulnerabilityNameIdEscaped}_ref", "$vulnerabilityNameTextEscaped References", $vulnerability) + #referenceTable("${vulnerabilityNameIdEscaped}_ref", "$vulnerabilityNameTextEscaped" $utils.getText("general.short.references"), $vulnerability)
#set($affectedAssets = $vulnerabilityAdapter.getAffectedAssets($vulnerability.getAffectedArtifactsByDefaultKey())) #if(!$affectedAssets.isEmpty())
- Affected Assets + $utils.getText("general.short.affected-assets") - #set($title = "${vulnerabilityNameTextEscaped} Affected Assets") + #set($title = "${vulnerabilityNameTextEscaped}" + $utils.getText("general.short.affected-assets")) #affectedAssetsTable($vulnerability, $affectedAssets, $title)
#end
- Affected Components + $utils.getText("general.short.affected-components") #set($affectedComponents = $vulnerability.getAffectedArtifactsByDefaultKey()) - #set($title = "${vulnerabilityNameTextEscaped} Affected Components") + #set($title = "${vulnerabilityNameTextEscaped}" + $utils.getText("general.short.affected-components")) #affectedComponentsTable($vulnerability, $affectedComponents, $title)
@@ -73,26 +69,24 @@ #if ($utils.notEmpty($vulnerability.getCweString()))
- Weakness + $utils.getText("inventory-report-vulnerability.short.weakness") $report.xmlEscapeString($vulnerability.getCweString())
#end
- Initial Severity + $utils.getText("inventory-report-vulnerability.short.initial-severity") #if ($vulnerability.getCvssSelectionResult().hasInitialCvss())

- #cvssScoreOverviewTable("${vulnerabilityNameIdEscaped}_severity", "$vulnerabilityNameTextEscaped Initial Severity", $vulnerability, false) + #cvssScoreOverviewTable("${vulnerabilityNameIdEscaped}_severity", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.initial-severity"), $vulnerability, false)

##

## #cvssScoreDetailsTable("${vulnerabilityNameIdEscaped}_severity_details", "$vulnerabilityNameTextEscaped Initial Severity Details", $vulnerability, false) ##

#else -

- The vulnerability does not provide any CVSS severity information. -

+

$utils.getText("inventory-report-vulnerability.no-vulnerability-severity-information")

#end
@@ -100,52 +94,50 @@ - Advisories + $utils.getText("inventory-report-vulnerability.short.advisories") #if ($advisoriesAlerts.isEmpty() && $advisoriesNotices.isEmpty() && $advisoriesNews.isEmpty() && $otherAdvisories.isEmpty()) -

- No security advisories have been identified. -

+

$utils.getText("inventory-report-vulnerability.no-identified-security-advisories")

#end #if (!$advisoriesAlerts.isEmpty())
- Alerts + $utils.getText("inventory-report-vulnerability.short.alerts")

-#advisoryOverview("${vulnerabilityNameIdEscaped}_alerts", "$vulnerabilityNameTextEscaped Alerts", $advisoriesAlerts) +#advisoryOverview("${vulnerabilityNameIdEscaped}_alerts", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.alerts"), $advisoriesAlerts)

#end #if (!$advisoriesNotices.isEmpty())
- Notices + $utils.getText("inventory-report-vulnerability.short.notices")

-#advisoryOverview("${vulnerabilityNameIdEscaped}_notices", "$vulnerabilityNameTextEscaped Notices", $advisoriesNotices) +#advisoryOverview("${vulnerabilityNameIdEscaped}_notices", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.notices"), $advisoriesNotices)

#end #if (!$advisoriesNews.isEmpty())
- Updates + $utils.getText("inventory-report-vulnerability.short.updates")

-#advisoryOverview("${vulnerabilityNameIdEscaped}_updates", "$vulnerabilityNameTextEscaped Updates", $advisoriesNews) +#advisoryOverview("${vulnerabilityNameIdEscaped}_updates", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.updates"), $advisoriesNews)

#end #if (!$otherAdvisories.isEmpty())
- Other + $utils.getText("general.short.other")

-#advisoryOverview("${vulnerabilityNameIdEscaped}_other_advisories", "$vulnerabilityNameTextEscaped Other advisories", $otherAdvisories) +#advisoryOverview("${vulnerabilityNameIdEscaped}_other_advisories", "$vulnerabilityNameTextEscaped" $utils.getText("general.short.other"), $otherAdvisories)

#end
- Assessment + $utils.getText("inventory-report-vulnerability.short.assessment")
- Summary + $utils.getText("general.short.summary")

#set ($assessmentSummaryLabels = $vulnerabilityAdapter.getVulnerabilityStatusLabels($vulnerability)) @@ -167,10 +159,10 @@ ## #if ($vulnerability.getCvssSelectionResult().hasContextCvss())

- Context Severity + $utils.getText("inventory-report-vulnerability.short.context-severity")

- #cvssScoreOverviewTable("${vulnerabilityNameIdEscaped}_modified_severity", "$vulnerabilityNameTextEscaped Context Severity", $vulnerability, true) + #cvssScoreOverviewTable("${vulnerabilityNameIdEscaped}_modified_severity", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.context-severity"), $vulnerability, true)

@@ -186,9 +178,9 @@ #end
- CVSS Vector Severity Charts + $utils.getText("inventory-report-vulnerability.short.cvss-severity") - #cvssScoreChartsTable("${vulnerabilityNameIdEscaped}_severity_charts", "$vulnerabilityNameTextEscaped Severity Charts", $vulnerability) + #cvssScoreChartsTable("${vulnerabilityNameIdEscaped}_severity_charts", "$vulnerabilityNameTextEscaped" $utils.getText("inventory-report-vulnerability.short.cvss-severity"), $vulnerability)
@@ -199,7 +191,7 @@ ## priority section - Priority + $utils.getText("inventory-report-vulnerability.short.priority") #vulnerabilityPriorityScoreTable($vulnerability, $vulnerabilityAdapter.getSecurityPolicy()) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt new file mode 100644 index 000000000..57541db7a --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-notice.dita.vt @@ -0,0 +1,14 @@ +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") +#set($threshold=$report.getVulnerabilityScoreThreshold()) + + + + + $reportContext.combinedTitle("Vulnerability Notice", true) + +

+ $utils.getText("inventory-report-vulnerability.vulnerability-threshhold") +

+ +
diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt similarity index 69% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt index 7aa746d29..a2c6801e6 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/tpc_inventory-vulnerability-report.dita.vt @@ -1,14 +1,15 @@ ## load macros from other files -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") -#parse("META-INF/templates/en/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") ## ## main template content - + $reportContext.combinedTitle("Vulnerability List", true) ## #set ($vulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesAll()) + ## #set ($vulnerabilitiesByStatus = $vulnerabilityAdapter.getVulnerabilitiesByEffectiveStatus($vulnerabilities)) ## Map> getVulnerabilitiesByEffectiveStatus(List vulnerabilities) #set ($isAnyCategoryDefined = false) @@ -20,22 +21,16 @@ ## #if(!$isAnyCategoryDefined) -

- No vulnerabilities have been identified. -

+

$utils.getText("general.no-vulnerabilites")

#else -

- The following vulnerabilities have been identified and categorized. -

+

$utils.getText("inventory-report-vulnerability.defined-vulnerabilites")

#foreach ($status in $vulnerabilitiesByStatus.keySet()) #if ($vulnerabilitiesByStatus.get($status).size() > 0) $status.getCapitalized() -

- The following vulnerabilities are considered $status.getCapitalized() within the given configuration: -

+

$utils.getText("inventory-report-vulnerability.vulnerability-status")

#vulnerabilityOverview($status.getAsXmlId(), "$report.xmlEscapeString($status.getCapitalized()) Category$reportContext.inContextOf()", $vulnerabilitiesByStatus.get($status), $status.shouldModifiedCvssBeDisplayed())

@@ -45,9 +40,7 @@ $status.getCapitalized() -

- No vulnerabilities are considered $report.xmlEscapeString($status.getCapitalized()) within the given configuration. -

+

$utils.getText("inventory-report-vulnerability.vulnerability-no-status")

#end diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/vulnerability-report.properties.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/vulnerability-report.properties.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/inventory-report-vulnerability/vulnerability-report.properties.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-report-vulnerability/vulnerability-report.properties.vt diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt new file mode 100644 index 000000000..caf17e1e5 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/inventory-statistics-vulnerability/tpc_inventory-vulnerability-statistics.dita.vt @@ -0,0 +1,78 @@ +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/inventory-report-vulnerability/macros/inventory-report-vulnerabilities.vm") + + + + $reportContext.combinedTitle("Vulnerability Statistics", true) +## + #set ($vulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesAll()) + #set ($initialVulnerabilities = $vulnerabilityAdapter.getEffectiveVulnerabilitiesInitialInventoryAll()) + +## + +

$utils.getText("inventory-statistics-vulnerability.statistics-preface")

+

+#statisticsOverviewTable("vulnerabilities_statistics_table_unmodified_all", $utils.getText("inventory-report-vulnerability.short.vuln-statistics") "$reportContext.inContextOf()", $initialVulnerabilities, "", false) +

+ + +## iterate over all advisories that shall have their own overview table +#foreach($advisory in $report.getGenerateOverviewTablesForAdvisories()) + #set ($advisoryName = $advisory.getWellFormedName()) + #set ($advisoryIdentifier = $advisory.name()) +## +

$utils.getText("inventory-statistics-vulnerability.statistics-for-vulnerability")

+

+#statisticsOverviewTable("vulnerabilities_statistics_table_unmodified_$report.xmlEscapeStringAttribute($advisoryIdentifier.toLowerCase())", $utils.getText("inventory-report-vulnerability.vuln-statistics"), $initialVulnerabilities, $advisory, false) +

+#end + + +

$utils.getText("inventory-statistics-vulnerability.statistics-preface-modified")

+

+#statisticsOverviewTable("vulnerabilities_statistics_table_modified_all", $utils.getText("inventory-report-vulnerability.short.context-vuln-statistics") "$reportContext.inContextOf()", $vulnerabilities, "", true) +

+ + +## iterate over all advisories that shall have their own modified overview table +#foreach($advisory in $report.getGenerateOverviewTablesForAdvisories()) + #set ($advisoryName = $advisory.getWellFormedName()) + #set ($advisoryIdentifier = $advisory.name()) +## +

$utils.getText("inventory-statistics-vulnerability.statistics-preface-modified-with-advisory")

+

+#statisticsOverviewTable("vulnerabilities_statistics_table_modified_$report.xmlEscapeStringAttribute($advisoryIdentifier.toLowerCase())", $utils.getText("inventory-report-vulnerability.context-vuln-statistics"), $vulnerabilities, $advisory, true) +

+#end +

$utils.getText("inventory-statistics-vulnerability.statistics-preface-modified-KEV")

+

+

+ $utils.getText("inventory-report-vulnerability.cisa-kev") + + + + + + + $utils.getText("inventory-report-vulnerability.short.exploited-in-the-wild") + $utils.getText("general.short.total") + $utils.getText("general.short.percentage") + + + + + $utils.getText("inventory-report-vulnerability.short.known") + $vulnerabilityAdapter.totalOfKevEntries() + $vulnerabilityAdapter.percentageOfKev()% + + + $utils.getText("inventory-report-vulnerability.short.unknown") + $vulnerabilityAdapter.totalOfNotKevEntries() + $vulnerabilityAdapter.percentageOfNotKev()% + + + +
+

+ + diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/macros/labels.vm similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/macros/labels.vm diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt index 897233d21..8201f2a12 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-affected.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Affected", "#ffffff", "#0d6efd", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt similarity index 56% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt index d35e4b9fc..c186d16f6 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-applicable.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Applicable", "#ffffff", "#0d6efd", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt index 54754da76..346a9da48 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-critical.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Critical", "#ffffff", "#ff172d", 54, 27) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-high.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-high.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-high.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-high.svg.vt index 0ee9d4774..da57105b8 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-high.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-high.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("High", "#ffffff", "#ff5a0e", 54, 27) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt index ec08cd275..9331633db 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-in-review.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("In Review", "#000000", "#84bfff", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt similarity index 56% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt index ac720b284..f2ea66e86 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-insignificant.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Insignificant", "#000000", "#cacecf", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-low.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-low.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-low.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-low.svg.vt index 292618c88..35fce4810 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-low.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-low.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Low", "#000000", "#ffcc00", 54, 27) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt index ee73a0b16..6434bed44 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-medium.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Medium", "#000000", "#ff9b05", 54, 27) \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-none.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-none.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-none.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-none.svg.vt index a6fbf158d..510e83bdf 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-none.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-none.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("None", "#000000", "#cacecf", 54, 27) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt similarity index 56% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt index 93fcbddcc..71bae317d 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-affected.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Not Affected", "#000000", "#77dd77", 78, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt similarity index 57% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt index 8f7ee1c41..1a5900bcc 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-not-applicable.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Not Applicable", "#000000", "#77dd77", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt similarity index 57% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt index 21e31b735..2f650678f 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potential-risk.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Potential Risk", "#000000", "#e3b2f2", 78, 39) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt similarity index 58% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt index d576361eb..f0df6158f 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-potentially-affected.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Potentially Affected", "#000000", "#84bfff", 105, 53) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt index b04973319..e817347b7 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-due.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Due", "#000000", "#f78f3f", 61, 31) \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt index 81cc93800..9ff05ac9d 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-elevated.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Elevated", "#000000", "#f6cd61", 61, 30) \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt index fa2476e16..fbc7ed90a 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-escalate.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Escalate", "#ffffff", "#ff3b3f", 61, 30) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt index ca09cab88..1d5b6a47d 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-priority-severity-standard.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Default", "#000000", "#cacecf", 61, 30) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt index 8ba89be23..594b7b3cf 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-reviewed.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Reviewed", "#ffffff", "#0d6efd", 76, 38) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt similarity index 55% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt index 6f0dd9098..03dd0a215 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-undefined.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Undefined", "#000000", "#cacecf", 72, 36) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt index a6fbf158d..510e83bdf 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-unset.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("None", "#000000", "#cacecf", 54, 27) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt similarity index 58% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt index 2d59eaf0f..7e12ab226 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void-vulnerability.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Void Vulnerability", "#ffffff", "#636363", 100, 50) diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void.svg.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void.svg.vt similarity index 54% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void.svg.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void.svg.vt index 649f2cd08..1b90f855d 100644 --- a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/labels-vulnerability-assessment/svg/fig_label-void.svg.vt +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/labels-vulnerability-assessment/svg/fig_label-void.svg.vt @@ -1,3 +1,3 @@ -#parse("META-INF/templates/en/labels-vulnerability-assessment/macros/labels.vm") +#parse("META-INF/templates/labels-vulnerability-assessment/macros/labels.vm") #simpleLabelSvg("Void", "#000000", "#cacecf", 76, 38) \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/README.md b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/README.md new file mode 100644 index 000000000..c6354d6ce --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/README.md @@ -0,0 +1,9 @@ +# Dita velocity language properties + +# Making changes + +When making changes to any of the language.properties files, make sure that all other properties files are in sync. +This means that all properties files should always contain the exact same keys. + +When extending the underlying dita templates or creating new content, it is recommended to work only with the dita/velocity +template itself and fully testing it before copying all contained text strings to the language.properties files. diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/de.properties b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/de.properties new file mode 100644 index 000000000..cc1e5a7ae --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/de.properties @@ -0,0 +1,206 @@ +# General text strings used across multiple document parts and sections. ----------------------------------------------- +general.short.artifacts=Artefakte +general.short.artifact-id=Artefakt-Id +general.short.asset=Softwarebestand +general.short.asset-name=Softwarebestandsname +general.short.asset-type=Softarebestandstyp +general.short.asset-version=Softwarebestandsversion +general.short.component=Komponente +general.short.components=Komponenten +general.short.number-of-component=Komponenten Anzahl +general.short.packages=Pakete +general.short.web-modules=Webmodule +general.short.asset-group=Softwarebestandsgruppe +general.short.group-id=Softwarebestands-Id +general.short.attributes=Attribute +general.short.values=Werte +general.short.files=Dateien +general.short.previous-version=Vorgänger Version +general.short.source=Quelle +general.short.summary=Zusammenfassung +general.short.type=Typ +general.short.license-options=Lizenzoptionen +general.short.license-variants=Lizenzvarianten +general.short.variants=Varianten +general.short.category=Kategorie +general.short.notes=Notizen +general.short.scheme=Schema +general.short.base=Basis +general.short.criteria=Kriterien +general.short.explanation=Erklärung +general.short.keywords=Schlüsselwörter +general.short.due-date=Fälligkeitsdatum +general.short.publish-date=Veröffentlichungsdatum +general.short.exploit-date=Exploit-Datum +general.short.description=Beschreibung +general.short.references=Referenzen +general.short.affected-assets=Betroffene Softwarebestände +general.short.affected-components=Betroffene Komponenten +general.short.other=Andere +general.short.total=Gesamt +general.short.percentage=Prozent +general.short.assessed=Bewertet +general.short.score=Bewertung + +general.assets-empty=Es wurde kein spezifischer Softwarebestand identifiziert +general.no-affected-components=Es wurden keine betroffenen Artefakte identifiziert. +general.no-vulnerabilites=Es wurden keine Schwachstellen identifiziert. +# ---------------------------------------------------------------------------------------------------------------------- + + +# Text Strings present in the assessment-report. ----------------------------------------------------------------------- +assessment-report.short.effective-vuln-by-asset=Effektive Schwachstellen nach Softwarebestand +assessment-report.short.associated-vuln-by-asset=Assoziierte Schwachstellen nach Softwarebestand + +assessment-report.vuln-table-descr=Die folgende Tabelle liefert Informationen zum Schweregrad von Schwachstellen für jeden einzelnen Softwarebestand. Schwachstellen können mehrfach gezählt werden, falls sie für mehrere Softwarebestände und deren Teile gelten. +assessment-report.vuln-table-descr-modified=Die Tabelle zeigt die angepassten Schweregrade unter Berücksichtigung von asset-spezifischen Bewertungsdetails. Die Spalte Bewertet zeigt an, inwieweit die Schwachstellen analysiert wurden. Falls keine angepasste Schwere verfügbar ist, wird die ursprüngliche Schwere angewendet. +assessment-report.vuln-table-descr-unmodified=Die Tabelle zeigt die ursprüngliche Schwere ohne Bewertungsdetails und resultierende Anpassungen der Schweregrade. Die Spalte Bewertet zeigt an, inwieweit die Schwachstellen auf Softwarebestand-Ebene analysiert wurden. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the asset-report-bom. ------------------------------------------------------------------------- +asset-report-bom.short.contained-components=Enthaltene Komponenten +asset-report-bom.short.asset-licenses=Softwarebestand Lizenzen +asset-report-bom.short.artifact-without-license=Artefakte ohne Lizenz +asset-report-bom.short.asset-list=Softwarebestandsliste +asset-report-bom.short.asset-license-expressions=Softwarebestand Lizenzausdrücke + +asset-report-bom.license-asset-topic=Die folgende Tabelle listet alle Softwarebestände auf, die unter $report.xmlEscapeString($license) lizenziert sind. +asset-report-bom.license-asset-topic-location=Informationen bezüglich der Lizenz oder des Vertrags können hier gefunden werden: +asset-report-bom.contained-components-table=Nachfolgend sind alle Komponenten aufgeführt, die Schwachstellen enthalten und mit diesem Softwarebestand verknüpft sind. +asset-report-bom.asset-table-descr=Die nachfolgenden Tabellen geben einen überblick über alle Lizenzen und Lizenzausdrücke, die dem jeweiligen Softwarebestand zugeordnet sind. Die Tabellen stellen die assoziierten Lizenzen dar. Siehe auch . +asset-report-bom.asset-table-note=Bitte beachten, dass eine Lizenz oder ein Lizenzausdruck mehreren Positionen im Softwarebestand zugeordnet werden kann. +asset-report-bom.asset-table-foot-note=Lizenzen mit Variationen aber inhaltlich ähnlichen Eigenschaften werden durch eine repräsentative Lizenz in der Auflistung zusammengefasst dargestellt. Die Details der Ausprägungen oder Variationen der Lizenz werden in separaten Abschnitten detailliert wiedergegeben. Freigaben von Lizenzvariationen sind ggf. nur für bestimmte Ausprägungen vorhanden. +asset-report-bom.open-code-similar=Open CoDE ermöglicht eine abgeleitete Freigabe bei Lizenzähnlichkeit. Siehe LÄ.4 unter https://wikijs.opencode.de/de/Hilfestellungen_und_Richtlinien/Lizenzcompliance. +asset-report-bom.license-detail-notice=$license ist repräsentativ für verschiedene Ausprägungen der Lizenz oder des Lizenzausdrucks. In diesem Abschnitt werden alle Ausprägungen von $report.xmlEscapeString($license) aufgelistet. +asset-report-bom.product-contained-assets=Die Tabelle stellt den Softwarebestand im Umfang von ${product.name} dar. Die einzelnen Positionen werden nachfolgend in einzelnen Abschnitten mit ergänzenden Details aufgeführt. +asset-report-bom.artifacts-without-license=Bei der Analyse der Daten konnten einem oder mehreren Artefakten keine Lizenz zugeordnet werden. Diese Artefakte werden im Folgenden aufgelistet. Eine Artefakt kann mehreren Positionen im Softwarebestand zugeordnet werden. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the dependency report. ------------------------------------------------------------------------ +dependencies.short.dependencies=Abhängigkeiten +dependencies.short.internal-dependencies=Interne Abhängigkeiten + +dependencies.artifact-dependencies=Es bestehen interne Abhängigkeiten zu den folgenden Artefakten: +dependencies.third-party-artifact-dependencies=Es bestehen Abhängigkeiten zu den folgenden Drittanbieter-Artefakten: +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-bom. --------------------------------------------------------------------- +inventory-report-bom.short.license-notices=Lizenzhinweise +inventory-report-bom.short.components-under=Komponenten unter +inventory-report-bom.short.effective-licenses=Effektive Lizenz(en) +inventory-report-bom.short.assets-covering=Softwarebestände mit +inventory-report-bom.short.assets-of-component=Softwarebestände mit Komponente +inventory-report-bom.short.artifacts-of-component=Artefakte vom Komponenten +inventory-report-bom.short.bill-of-materials=Bestandsliste +inventory-report-bom.short.licenses-in-effect=In Kraft getretene Lizenzen + +inventory-report-bom.license-artifact-topic=Die folgende Tabelle listet alle Komponenten auf, die unter $license lizenziert sind oder Unterkomponenten unter $license enthalten. +inventory-report-bom.license-artifact-topic-location=Informationen bezüglich der Lizenz oder des Vertrags befindet sich hier: +inventory-report-bom.individual-artifact=Keine . +inventory-report-bom.artifact-table-descr=Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. Die Tabelle ist nach Komponenten organisiert, um die Artefakte zu gruppieren. +inventory-report-bom.bill-of-materials=In den folgenden Kapiteln werden die Bestandteile der Software zu $reportContext.getReportInventoryName() $reportContext.getReportInventoryVersion() aufgeführt. Eine Lizenzübersicht fasst die als verbindlich bewerteten Lizenzen für $reportContext.reportInventoryName zusammen. Zu jeder Lizenz werden die Artefakte aufgelistet, die mit der Lizenz in Verbindung stehen. +inventory-report-bom.no-component-licenses=Keine Komponenten mit Lizenzhinweisen. +inventory-report-bom.license-notice=Die hier detaillierte Software beinhaltet +inventory-report-bom.component-license=Die vorliegenden Version von $report.xmlEscapeString($componentNotice.getComponentName()) unterliegen den Bestimmungen der $componentNotice.getLicense(). +inventory-report-bom.component-with-no-licenses= Für einige Komponenten konnten kein Bezug zur Lizenzierung hergestellt werden. Diese Komponenten werden nachfolgend aufgelistet. +inventory-report-bom.component-with-no-licenses-title=Komponenten ohne Lizenz $reportContext.inContextOf() +inventory-report-bom.no-component-without-license=Es wurden keine Komponenten ohne Lizenzbezug festgestellt. +inventory-report-bom.effective-license-table=Lizenzen werden von einzelnen oder mehreren Komponenten genutzt werden. Im Folgenden werden die Komponenten in Bezug zur Lizenz aufgeführt. +inventory-report-bom.license-variations=$license wird als Repräsentant für alle ähnlichen Lizenzen mit Variationen oder Modifikationen aufgeführt. Im entsprechenden Unterkapitel werden die unterschiedlichen Ausprägungen von $license separat dargestellt. +inventory-report-bom.different-effective-licenses=Dieses Kapitel stellt die Lizenzen dar, die als effektive und verbindliche Lizenzen im Zusammenhang mit der Software abgeleitet wurden.

In der Tabelle Lizenzoptionen$reportContext.inContextOf() werden Auswahlmöglichkeiten für den Empfänger der Software dokumentiert.

Die Tabelle Effektive Lizenzen beinhaltet die effektiven Lizenzen im Überblick.

Es ist zu berücksichtigen, dass eine Komponente mehreren effektiven Lizenzen zugeordnet sein kann. Dabei werden die jeweiligen Einzellizenzen als effektive Lizenz geführt. Dies gilt ebenfalls für Einzellizenzen von Lizenzoptionen.

+inventory-report-bom.different-effective-licenses-footnote=Lizenzvariationen werden als einzelne Lizenz geführt. Die spezifische Ausprägung der Lizenz kann vom der Standardlizenzvolage abweichen. Die Varianten werden in den entsprechenden Kapitel detailliert. +inventory-report-bom.no-individual-package=Keine . +inventory-report-bom.package-table-descr=Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. Die Tabelle ist nach Komponenten organisiert um die Pakete zu gruppieren. +inventory-report-bom.no-individual-web-module=Keine . +inventory-report-bom.web-module-table-descr=Die nachfolgende Tabelle führt alle in der Software beinhalteten auf. Die Tabelle ist nach Komponenten organisiert um die Webmodule zu gruppieren. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-diff --------------------------------------------------------------------- +inventory-report-diff.short.version-upgrades=Versions-Upgrades +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-vulnerability. ----------------------------------------------------------- +inventory-report-vulnerability.short.affected-components=Betroffenen Komponenten +inventory-report-vulnerability.short.creation-date=Erstellungsdatum +inventory-report-vulnerability.short.update-date=Aktualisierungsdatum +inventory-report-vulnerability.short.severity=Schweregrad +inventory-report-vulnerability.short.priority=Priorität +inventory-report-vulnerability.short.target=Ziel +inventory-report-vulnerability.short.rational=Rational +inventory-report-vulnerability.short.risk=Risiko +inventory-report-vulnerability.short.measures=Maßnahmen +inventory-report-vulnerability.short.initial-cvss=Initialer CVSS +inventory-report-vulnerability.short.context-cvss=Kontext CVSS +inventory-report-vulnerability.short.cvss-overall=CVSS Gesamt +inventory-report-vulnerability.short.ms-remediation=MS Wiederherstellung +inventory-report-vulnerability.short.assessment=Bewertung +inventory-report-vulnerability.short.advisories=Hinweise +inventory-report-vulnerability.short.weakness=Schwachstelle +inventory-report-vulnerability.short.new-security-advisories=Neue Sicherheitshinweise +inventory-report-vulnerability.short.initial-severity=Initialer Schweregrad +inventory-report-vulnerability.short.alerts=Warnungen +inventory-report-vulnerability.short.notices=Hinweise +inventory-report-vulnerability.short.updates=Updates +inventory-report-vulnerability.short.context-severity=Kontext Schweregrad +inventory-report-vulnerability.short.cvss-severity=CVSS Vector Schweregrad Tabellen +inventory-report-vulnerability.short.vuln-statistics=Schwachstellen Statistiken +inventory-report-vulnerability.short.context-vuln-statistics=Kontext Schwachstellen Statistiken +inventory-report-vulnerability.short.exploited-in-the-wild=Bereits Ausgenutzt +inventory-report-vulnerability.short.known=BEKANNT +inventory-report-vulnerability.short.unknown=UNBEKANNT + +inventory-report-vulnerability.cisa-kev=CISA KEV Schwachstellenstatistik +inventory-report-vulnerability.context-vuln-statistics=Kontext-Schwachstellenstatistik mit $report.xmlEscapeString($advisoryName) Hinweisen$reportContext.inContextOf() +inventory-report-vulnerability.vuln-statistics=Schwachstellenstatistik mit $report.xmlEscapeString($advisoryName) Hinweisen$reportContext.inContextOf() +inventory-report-vulnerability.security-advisories-summary=Zusammenfassung der Sicherheitswarnungen +inventory-report-vulnerability.not-relevant-security-advisories=Nicht relevante Sicherheitswarnungen +inventory-report-vulnerability.advisories-in-review=Sicherheitswarnungen in Review +inventory-report-vulnerability.no-assessment=Keine Bewertungsinformationen verfügbar. +inventory-report-vulnerability.exploited-wild=Diese Schwachstelle, die $report.xmlEscapeString($kev.getVendor()) $report.xmlEscapeString($kev.getProduct()) betrifft, wurde bestätigt, dass sie aktiv ausgenutzt wird. +inventory-report-vulnerability.no-exploited-wild=Schwachstelle wurde noch nicht aktiv ausgenutzt. +inventory-report-vulnerability.ransomware-campaigns=Darüber hinaus wurde sie in Ransomware-Kampagnen identifiziert. +inventory-report-vulnerability.no-epss-score=Kein EPSS-Score verfügbar. +inventory-report-vulnerability.no-eol=Keine Informationen zum End-of-Life (EOL) verfügbar. +inventory-report-vulnerability.chance-of-exploit=Diese Schwachstelle hat eine $priorityData.getCalculator().getEpssData().getEpssScoreAsPercentage()-prozentige Wahrscheinlichkeit, in den nächsten 30 Tagen ausgenutzt zu werden, gemäß FIRST. Sie gehört zu den besten $priorityData.getCalculator().getEpssData().getTopRatedPercentileAsPercentage() aller bewerteten Schwachstellen. +inventory-report-vulnerability.no-keywords-matched=Keine Schlüsselwort-Sets gefunden. +inventory-report-vulnerability.no-cvss-vector=Kein CVSS-Vektor verfügbar. +inventory-report-vulnerability.provides-the-vector=stellt den Vektor bereit: +inventory-report-vulnerability.from-base-score=aus Basisscore +inventory-report-vulnerability.no-elevated-priority=Keine erhöhte Priorität. +inventory-report-vulnerability.no-initial-cvss-chart=Das initiale CVSS-Score-Diagramm ist nicht verfügbar. +inventory-report-vulnerability.total-keyword-score=Schlüsselwort-Score gesamt: +inventory-report-vulnerability.no-vulnerable-configurations=Keine passenden Konfigurationen mit Schwachstellen. +inventory-report-vulnerability.no-security-advisories=Keine Sicherheitsmeldungen wurden für den Abfragezeitraum identifiziert#if($queryPeriod) ($queryPeriod)#end. +inventory-report-vulnerability.security-advisories=Die folgenden Sicherheitsmeldungen wurden für den Abfragezeitraum erkannt#if($queryPeriod) ($queryPeriod)#end. +inventory-report-vulnerability.new-security-advisories=Die folgenden Sicherheitsmeldungen sind neu im gegebenen Kontext und wurden noch nicht während der Schwachstellenbewertung berücksichtigt. +inventory-report-vulnerability.no-new-security-advisories=Keine Sicherheitsmeldungen sind im Abfragezeitraum vorhanden, die in diesem Kontext neu sind und noch nicht während der Schwachstellenbewertung berücksichtigt wurden. +inventory-report-vulnerability.security-advisories-in-review=Die folgenden Sicherheitsmeldungen sind neu im Abfragezeitraum. Die Überprüfung der Sicherheitsmeldungen und die Validierung der zugehörigen Schwachstellenbewertungen sind in Bearbeitung. +inventory-report-vulnerability.no-security-advisories-in-review=Keine Sicherheitsmeldungen sind im Abfragezeitraum vorhanden, die derzeit überprüft werden. +inventory-report-vulnerability.security-advisories-reviewed=Die folgenden Sicherheitsmeldungen sind neu im Abfragezeitraum. Diese Meldungen wurden bereits bei der Bewertung der zugehörigen Schwachstellen berücksichtigt. +inventory-report-vulnerability.no-security-advisories-reviewed=Keine Sicherheitsmeldungen sind im Abfragezeitraum vorhanden, die bereits bei der Bewertung der zugehörigen Schwachstellen berücksichtigt wurden. +inventory-report-vulnerability.security-advisories-unaffected=Die folgenden Sicherheitsmeldungen sind im Abfragezeitraum enthalten. Die zugehörigen Schwachstellen sind in diesem Kontext nicht relevant. Die Meldungen sind zur besseren Übersicht aufgelistet. +inventory-report-vulnerability.no-security-advisories-unaffected=Keine Sicherheitsmeldungen sind im Abfragezeitraum vorhanden, die als irrelevant in diesem Kontext betrachtet werden. +inventory-report-vulnerability.security-advisories-unreviewed=Die folgenden Sicherheitsmeldungen sind nicht im Abfragezeitraum vorhanden, wurden jedoch mit den betroffenen Komponenten abgeglichen. Die Meldungen sind zur besseren Übersicht aufgelistet. +inventory-report-vulnerability.no-security-advisories-unreviewed=Es sind keine Sicherheitsmeldungen vorhanden, die nicht im Abfragezeitraum liegen, aber mit den betroffenen Komponenten abgeglichen wurden. +inventory-report-vulnerability.vulnerability-details=Details werden für Schwachstellen bereitgestellt, die entweder potenzielle Schwachstellen sind oder für die Dritthersteller-Meldungen existieren. +inventory-report-vulnerability.no-vulnerability-severity-information=Für die Schwachstelle sind keine CVSS-Schweregradinformationen verfügbar. +inventory-report-vulnerability.no-identified-security-advisories=Keine Sicherheitsmeldungen wurden identifiziert. +inventory-report-vulnerability.vulnerability-threshhold=Im Allgemeinen werden nur Schwachstellen mit einem Scoremax, der höher oder gleich einem Schwellenwert von $threshold ist, im gegebenen Kontext als relevant betrachtet. Schwachstellen mit einem Scoremax unter $threshold werden standardmäßig als unbedeutende Schwachstellen kategorisiert. +inventory-report-vulnerability.defined-vulnerabilites=Die folgenden Schwachstellen wurden identifiziert und kategorisiert. +inventory-report-vulnerability.vulnerability-status=Die folgenden Schwachstellen gelten als $status.getCapitalized() in der gegebenen Konfiguration: +inventory-report-vulnerability.vulnerability-no-status=Keine Schwachstellen werden als $report.xmlEscapeString($status.getCapitalized()) in der gegebenen Konfiguration betrachtet. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-statistics-vulnerability. ------------------------------------------------------- +inventory-statistics-vulnerability.statistics-preface=Die folgende Tabelle zeigt Statistiken zu den identifizierten Schwachstellen. Die Schwachstellen werden mit ihrer ursprünglichen, unveränderten Schwere in die Statistik aufgenommen. +inventory-statistics-vulnerability.statistics-for-vulnerability=Die folgende Tabelle zeigt Statistiken zu den identifizierten Schwachstellen mit Meldungsinformationen von $advisoryName. Die Schwachstellen werden mit ihrer ursprünglichen, unveränderten Schwere in die Statistik aufgenommen. +inventory-statistics-vulnerability.statistics-preface-modified=Die folgende Tabelle zeigt Statistiken zu den identifizierten Schwachstellen. Die Schwachstellen werden mit ihrer angepassten Schwere, falls verfügbar, oder ansonsten mit ihrer ursprünglichen, unveränderten Schwere in die Statistik aufgenommen. +inventory-statistics-vulnerability.statistics-preface-modified-with-advisory=Die folgende Tabelle zeigt Statistiken zu den identifizierten Schwachstellen mit Meldungsinformationen von $advisoryName. Die Schwachstellen werden mit ihrer angepassten Schwere, falls verfügbar, oder ansonsten mit ihrer ursprünglichen, unveränderten Schwere in die Statistik aufgenommen. +inventory-statistics-vulnerability.statistics-preface-modified-KEV=Die folgende Tabelle zeigt Statistiken zu den identifizierten Schwachstellen aus CISA KEV. +# ---------------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/en.properties b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/en.properties new file mode 100644 index 000000000..e09f88200 --- /dev/null +++ b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/lang/en.properties @@ -0,0 +1,207 @@ +# General text strings used across multiple document parts and sections. ----------------------------------------------- +general.short.artifacts=Artifacts +general.short.artifact-id=Artifact Id +general.short.asset=Asset +general.short.asset-name=Asset Name +general.short.asset-type=Asset Type +general.short.asset-version=Asset Version +general.short.component=Component +general.short.components=Components +general.short.number-of-component=Number of Components +general.short.packages=Packages +general.short.web-modules=Web modules +general.short.asset-group=Asset Group +general.short.group-id=Group Id +general.short.attributes=Attributes +general.short.values=Values +general.short.files=Files +general.short.previous-version=Previous Version +general.short.source=Source +general.short.summary=Summary +general.short.type=Type +general.short.license-options=License Options +general.short.license-variants=License variations +general.short.variants=Variants +general.short.category=Category +general.short.notes=Notes +general.short.scheme=Scheme +general.short.base=Base +general.short.criteria=Criteria +general.short.explanation=Explanation +general.short.keywords=Keywords +general.short.due-date=Due Date +general.short.publish-date=Publish Date +general.short.exploit-date=Exploit Date +general.short.description=Description +general.short.references=References +general.short.affected-assets=Affected Assets +general.short.affected-components=Affected Components +general.short.other=Other +general.short.total=Total +general.short.percentage=Percentage +general.short.assessed=Assessed +general.short.score=Score + +general.assets-empty=No assets have been identified. +general.no-affected-components=No affected components have been identified. +general.no-vulnerabilites=No vulnerabilities have been identified. +# ---------------------------------------------------------------------------------------------------------------------- + + +# Text Strings present in the assessment-report. ----------------------------------------------------------------------- +assessment-report.short.effective-vuln-by-asset=Effective Vulnerabilities by Asset +assessment-report.short.associated-vuln-by-asset=Associated Vulnerabilities by Asset + +assessment-report.vuln-table-descr=The following table provides information on the severity of vulnerabilities for each individual asset. Vulnerabilities may be counted several times in case these apply for multiple assets and their parts. +assessment-report.vuln-table-descr-modified=The table shows the modified severities applying asset-specific assessment details. Column Assessed indicates to which extent the vulnerabilities have been analyzed. If no modified severity is available the unmodified severity is applied. +assessment-report.vuln-table-descr-unmodified=The table shows the original severity without any assessment details and resulting severity adjustments. Column Assessed indicates to which extent the vulnerabilities have been analyzed on asset-level. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the asset-report-bom. ------------------------------------------------------------------------- +asset-report-bom.short.contained-components=Contained Components +asset-report-bom.short.asset-licenses=Asset Licenses +asset-report-bom.short.artifact-without-license=Artefacts without License +asset-report-bom.short.asset-list=Asset List +asset-report-bom.short.asset-license-expressions=Asset License Expressions + +asset-report-bom.license-asset-topic=The following table lists all assets that are licensed under $report.xmlEscapeString($license). +asset-report-bom.license-asset-topic-location=Information with respect to the license or contract can be found in +asset-report-bom.contained-components-table=Listed below are all components containing vulnerabilities which are associated with this asset. +asset-report-bom.asset-table-descr=Table Asset Licenses provides an overview of all licenses and license expressions associated with the software assets covered by this documentation. +asset-report-bom.asset-table-note= Please note, that a license / license expression may be associated with several assets. +asset-report-bom.asset-table-foot-note= License variations of the same kind are displayed as single license. The variations are detailed in the corresponding paragraphs. An approval or license status may only be applicable for individual variants. +asset-report-bom.open-code-similar=Open CoDE allows a derivative release in cases of license similarity. See section LÄ.4 under https://wikijs.opencode.de/en/Hilfestellungen_und_Richtlinien/Lizenzcompliance. +asset-report-bom.license-detail-notice=$license is representative of all licenses with variations,characteristics and modifications of the original license or license template. In this chapter, all variations, which are represented by $report.xmlEscapeString($license), are listed individually. +asset-report-bom.product-contained-assets=The following table lists all assets that have been identified in the context of ${product.name}. The assets are listed in separate sections with their specific characteristics and attributes. +asset-report-bom.artifacts-without-license=During the analysis of the data, one or more artifacts could not be assigned a license. These artifacts are listed below. An artifact can be associated with multiple software assets. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the dependency report. ------------------------------------------------------------------------ +dependencies.short.dependencies=Dependencies +dependencies.short.internal-dependencies=Internal Dependencies + +dependencies.artifact-dependencies=There are internal dependencies to the following artifacts: +dependencies.third-party-artifact-dependencies=There are dependencies to the following third-party artifacts: +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-bom. --------------------------------------------------------------------- +inventory-report-bom.short.license-notices=License Notices +inventory-report-bom.short.components-under=Components under +inventory-report-bom.short.effective-licenses=Effective License(s) +inventory-report-bom.short.assets-covering=Assets covering +inventory-report-bom.short.assets-of-component=Assets of Component +inventory-report-bom.short.artifacts-of-component=Artifacts of Component +inventory-report-bom.short.bill-of-materials=Bill of Materials +inventory-report-bom.short.licenses-in-effect=Licenses in Effect + +inventory-report-bom.license-artifact-topic=The following table lists all components that are licensed or contain subcomponents under $license. +inventory-report-bom.license-artifact-topic-location=Information with respect to the license or contract can be found in +inventory-report-bom.individual-artifact=There are no individual . +inventory-report-bom.artifact-table-descr=The following table lists all included in the software covered by this document. The list is organized by components to group the artifacts. +inventory-report-bom.bill-of-materials=In the subsequent chapters a comprehensive list of the asset covered by $reportContext.getReportInventoryNamed() $reportContext.getReportInventoryVersion() is provided. A license overview summarises all licenses evaluated for $reportContext.reportInventoryName. For each license the artefacts associated with this license is are listed. +inventory-report-bom.no-component-licenses=No component with license notices covered. +inventory-report-bom.license-notice=The herein covered software distribution contains +inventory-report-bom.component-license=In the present version, $componentNotice.getComponentName() is subject to the terms of the $componentNotice.getLicense(). +inventory-report-bom.component-with-no-licenses=Several components have no license information associated. These components and the identified artifacts are listed in the following table. +inventory-report-bom.component-with-no-licenses-title=Components without License$reportContext.inContextOf() +inventory-report-bom.no-component-without-license= No components without license detected. +inventory-report-bom.effective-license-table=Licenses are used by several or individual components. In the following the components are listed for each effective license. +inventory-report-bom.license-variations=$license is representative of all licenses with variations, characteristics and modifications of the original license template. In this subchapter, all these license variations, which are represented by the $license, are listed individually +inventory-report-bom.different-effective-licenses=This chapter outlines the different licenses considered effective within the given context. Table License Options$reportContext.inContextOf() provides an outline of licenses options for the recipient of the software. In Licenses in Effect$reportContext.inContextOf() provides an overview of the licenses in effect. In the following paragraphs the individual components are listed for each effective license. A component may be subject to several licenses in effect. The individual parts of a license option are also listed as effective license. +inventory-report-bom.different-effective-licenses-footnote=License variations are represented as a single effective license. The concrete license may differ from the standard license template. The variations are detailed in the corresponding paragraphs. +inventory-report-bom.no-individual-package=There are no individual . +inventory-report-bom.package-table-descr=The following table lists all included in the software covered by this document. The list is organized by components to group the packages. +inventory-report-bom.no-individual-web-module=There are no individual . +inventory-report-bom.web-module-table-descr= The following table lists all included in the software covered by this document. The list is organized by components to group the web modules. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-diff --------------------------------------------------------------------- +inventory-report-diff.short.version-upgrades=Version Upgrades +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-report-vulnerability. ----------------------------------------------------------- +inventory-report-vulnerability.short.vulnerabilites=Vulnerabilites +inventory-report-vulnerability.short.affected-components=Affected Components +inventory-report-vulnerability.short.creation-date=Creation Date +inventory-report-vulnerability.short.update-date=Update Date +inventory-report-vulnerability.short.severity=Severity +inventory-report-vulnerability.short.priority=Priority +inventory-report-vulnerability.short.target=Target +inventory-report-vulnerability.short.rational=Rational +inventory-report-vulnerability.short.risk=Risk +inventory-report-vulnerability.short.measures=Measures +inventory-report-vulnerability.short.initial-cvss=Initial CVSS +inventory-report-vulnerability.short.context-cvss=Context CVSS +inventory-report-vulnerability.short.cvss-overall=CVSS Overall +inventory-report-vulnerability.short.ms-remediation=MS Remediation +inventory-report-vulnerability.short.assessment=Assessment +inventory-report-vulnerability.short.advisories=Advisories +inventory-report-vulnerability.short.weakness=Weakness +inventory-report-vulnerability.short.new-security-advisories=New Security Advisories +inventory-report-vulnerability.short.initial-severity=Initial Severity +inventory-report-vulnerability.short.alerts=Alerts +inventory-report-vulnerability.short.notices=Notices +inventory-report-vulnerability.short.updates=Updates +inventory-report-vulnerability.short.context-severity=Context Severity +inventory-report-vulnerability.short.cvss-severity=CVSS Vector Severity Charts +inventory-report-vulnerability.short.vuln-statistics=Vulnerability Statistics +inventory-report-vulnerability.short.context-vuln-statistics=Context Vulnerability Statistics +inventory-report-vulnerability.short.exploited-in-the-wild=Exploited in the Wild +inventory-report-vulnerability.short.known=KNOWN +inventory-report-vulnerability.short.unknown=UNKNOWN + +inventory-report-vulnerability.cisa-kev=CISA KEV vulnerabilities statistics +inventory-report-vulnerability.context-vuln-statistics=Context Vulnerability Statistics with $report.xmlEscapeString($advisoryName) Advisories$reportContext.inContextOf() +inventory-report-vulnerability.vuln-statistics=Vulnerability Statistics with $report.xmlEscapeString($advisoryName) Advisories$reportContext.inContextOf() +inventory-report-vulnerability.security-advisories-summary=Security Advisories Summary +inventory-report-vulnerability.not-relevant-security-advisories=Not relevant Security Advisories +inventory-report-vulnerability.advisories-in-review=Security Advisories in Review +inventory-report-vulnerability.no-assessment=No assessment information available. +inventory-report-vulnerability.exploited-wild=This vulnerability, affecting $report.xmlEscapeString($kev.getVendor()) $report.xmlEscapeString($kev.getProduct()), has been confirmed to have been exploited in the wild. +inventory-report-vulnerability.no-exploited-wild=vulnerability has not been confirmed to have been exploited in the wild. +inventory-report-vulnerability.ransomware-campaigns=Furthermore, it has been identified in ransomware campaigns. +inventory-report-vulnerability.no-epss-score=No EPSS score available. +inventory-report-vulnerability.no-eol=No end-of-life (EOL) information available. +inventory-report-vulnerability.chance-of-exploit=This vulnerability has a $priorityData.getCalculator().getEpssData().getEpssScoreAsPercentage() chance of being exploited in the next 30 days according to FIRST. It ranks in the top $priorityData.getCalculator().getEpssData().getTopRatedPercentileAsPercentage() of all scored vulnerabilities. +inventory-report-vulnerability.no-keywords-matched=No keyword sets matched. +inventory-report-vulnerability.no-cvss-vector=No CVSS vector available. +inventory-report-vulnerability.provides-the-vector=provides the vector: +inventory-report-vulnerability.from-base-score=from base score +inventory-report-vulnerability.no-elevated-priority=No elevated Priority. +inventory-report-vulnerability.no-initial-cvss-chart=The initial CVSS score chart is not available. +inventory-report-vulnerability.total-keyword-score=Total keywords score: +inventory-report-vulnerability.no-vulnerable-configurations=No matched vulnerable configurations. +inventory-report-vulnerability.no-security-advisories=No security advisories have been identified for the query period#if($queryPeriod) ($queryPeriod)#end. +inventory-report-vulnerability.security-advisories=The following security advisories have been detected for the query period#if($queryPeriod) ($queryPeriod)#end. +inventory-report-vulnerability.new-security-advisories=The following security advisories are new in the given context and have not yet been considered during vulnerability assessments. +inventory-report-vulnerability.no-new-security-advisories= No security advisories are present in the query period that are considered new in this context and have not yet been considered during vulnerability assessments. +inventory-report-vulnerability.security-advisories-in-review= The following security advisories are new in the query period. The review of security advisories and verification of related vulnerability assessments are in progress. +inventory-report-vulnerability.no-security-advisories-in-review= No security advisories are present in the query period that are currently under review. +inventory-report-vulnerability.security-advisories-reviewed=The following security advisories are new in the query period. These advisories have already been considered in the assessment of the related vulnerabilities. +inventory-report-vulnerability.no-security-advisories-reviewed= No security advisories are present in the query period that have already been considered in the assessment of the related vulnerabilities. +inventory-report-vulnerability.security-advisories-unaffected=The following security advisories are included in the query period. The related vulnerabilities are not relevant in this context. The advisories are listed to provide a comprehensible report. +inventory-report-vulnerability.no-security-advisories-unaffected=No security advisories are present in the query period that are considered irrelevant in this context. +inventory-report-vulnerability.security-advisories-unreviewed=The following security advisories are not present in the query period, but have been matched by the affected components. The advisories are listed to provide a comprehensible report. +inventory-report-vulnerability.no-security-advisories-unreviewed=There are no security advisories that are not present in the query period, but were matched by the affected components. +inventory-report-vulnerability.vulnerability-details=Details are provided for vulnerabilities which are either potential vulnerabilities or which have third-party advisories. +inventory-report-vulnerability.no-vulnerability-severity-information=The vulnerability does not provide any CVSS severity information. +inventory-report-vulnerability.no-identified-security-advisories=No security advisories have been identified. +inventory-report-vulnerability.vulnerability-threshhold=In general, only vulnerabilities with Scoremax higher or equal a threshold of $threshold are considered relevant in the given context. Vulnerabilities with Scoremax lower than $threshold are categorized as insignificant vulnerabilities by default. +inventory-report-vulnerability.defined-vulnerabilites=The following vulnerabilities have been identified and categorized. +inventory-report-vulnerability.vulnerability-status=The following vulnerabilities are considered $status.getCapitalized() within the given configuration: +inventory-report-vulnerability.vulnerability-no-status=No vulnerabilities are considered $report.xmlEscapeString($status.getCapitalized()) within the given configuration. +# ---------------------------------------------------------------------------------------------------------------------- + + +#Text Strings present in the inventory-statistics-vulnerability. ------------------------------------------------------- +inventory-statistics-vulnerability.statistics-preface=The following table shows statistics for the identified vulnerabilities. The vulnerabilities are included in the statistics with their original unmodified severity. +inventory-statistics-vulnerability.statistics-for-vulnerability=The following table shows statistics for the identified vulnerabilities with advisory information from $advisoryName. The vulnerabilities are included in the statistics with their original unmodified severity. +inventory-statistics-vulnerability.statistics-preface-modified=The following table shows statistics for the identified vulnerabilities. The vulnerabilities are included in the statistics with their modified severity if available or their unmodified severity otherwise. +inventory-statistics-vulnerability.statistics-preface-modified-with-advisory= The following table shows statistics for the identified vulnerabilities with advisory information from $advisoryName. The vulnerabilities are included in the statistics with their modified severity if available or their unmodified severity otherwise. +inventory-statistics-vulnerability.statistics-preface-modified-KEV=The following table shows statistics for the identified vulnerabilities from CISA KEV +# ---------------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/vulnerability-report-bookmap/map_vulnerability-report-bookmap.ditamap.vt b/libraries/ae-inventory-processor/src/main/resources/META-INF/templates/vulnerability-report-bookmap/map_vulnerability-report-bookmap.ditamap.vt similarity index 100% rename from libraries/ae-inventory-processor/src/main/resources/META-INF/templates/en/vulnerability-report-bookmap/map_vulnerability-report-bookmap.ditamap.vt rename to libraries/ae-inventory-processor/src/main/resources/META-INF/templates/vulnerability-report-bookmap/map_vulnerability-report-bookmap.ditamap.vt diff --git a/libraries/ae-inventory-processor/src/test/java/org/metaeffekt/core/inventory/processor/RepositoryReportTest.java b/libraries/ae-inventory-processor/src/test/java/org/metaeffekt/core/inventory/processor/RepositoryReportTest.java index 7436759fc..63b42ae8c 100644 --- a/libraries/ae-inventory-processor/src/test/java/org/metaeffekt/core/inventory/processor/RepositoryReportTest.java +++ b/libraries/ae-inventory-processor/src/test/java/org/metaeffekt/core/inventory/processor/RepositoryReportTest.java @@ -80,7 +80,7 @@ public void testCreateTestReport001() throws Exception { File target = new File("target/test-inventory-01"); target.mkdirs(); - File targetReportPath = new File(target, "report"); + File targetReportPath = new File(target, "report"); targetReportPath.mkdirs(); File licenseReport = new File(targetReportPath, "tpc_inventory-licenses.dita"); @@ -94,12 +94,14 @@ public void testCreateTestReport001() throws Exception { report.setTargetComponentDir(targetComponentDir); report.setTargetReportDir(targetReportPath); + report.setAssessmentReportEnabled(true); report.setAssetBomReportEnabled(true); report.setInventoryBomReportEnabled(true); report.setInventoryPomEnabled(true); report.setInventoryDiffReportEnabled(false); report.setInventoryVulnerabilityReportEnabled(true); report.setInventoryVulnerabilityReportSummaryEnabled(true); + report.setInventoryVulnerabilityStatisticsReportEnabled(true); final boolean valid = report.createReport(); @@ -341,6 +343,61 @@ public void testCreateTestReport004() throws Exception { // 'mvn initialize -Pgenerate-dita -Dphase.inventory.check=DISABLED -Ddita.source.dir=target/test-inventory-04' } + @Ignore + @Test + public void testCreateTestReportKeycloak() throws IOException { + File inventoryDir = new File("src/test/resources/test-inventory-keycloak"); + String inventoryIncludes = INVENTORY_INCLUDES; + + InventoryReport report = new InventoryReport(); + report.setTemplateLanguageSelector("de"); + + report.setReportContext(new ReportContext("test", "Test", "Test Context")); + + report.setFailOnUnknown(false); + report.setFailOnUnknownVersion(false); + report.setReferenceInventoryDir(inventoryDir); + report.setReferenceInventoryIncludes(inventoryIncludes); + report.setReferenceLicensePath(LICENSES_PATH); + report.setReferenceComponentPath(COMPONENTS_PATH); + report.setInventory(InventoryUtils.readInventory(inventoryDir, inventoryIncludes)); + + PatternArtifactFilter artifactFilter = new PatternArtifactFilter(); + artifactFilter.addIncludePattern("^org\\.metaeffekt\\..*$:*"); + report.setArtifactFilter(artifactFilter); + + File target = new File("target/test-inventory-keycloak"); + target.mkdirs(); + + File targetReportPath = new File(target, "report"); + targetReportPath.mkdirs(); + + File licenseReport = new File(targetReportPath, "tpc_inventory-licenses.dita"); + File componentReport = new File(targetReportPath, "tpc_inventory-component-report.dita"); + File noticeReport = new File(targetReportPath, "tpc_inventory-component-license-details.dita"); + File artifactReport = new File(targetReportPath, "tpc_inventory-artifact-report.dita"); + + report.setTargetLicenseDir(new File("licenses")); + report.setTargetComponentDir(new File("components")); + report.setTargetReportDir(targetReportPath); + + report.setAssessmentReportEnabled(true); + report.setAssetBomReportEnabled(true); + report.setInventoryBomReportEnabled(true); + report.setInventoryPomEnabled(true); + report.setInventoryDiffReportEnabled(true); + report.setInventoryVulnerabilityReportEnabled(true); + report.setInventoryVulnerabilityReportSummaryEnabled(true); + report.setInventoryVulnerabilityStatisticsReportEnabled(true); + + final boolean valid = report.createReport(); + + // copy bookmap + FileUtils.copyFileToDirectory(new File("src/test/resources/test-inventory-keycloak/bm_test.ditamap"), target); + + // generate PDF using 'mvn initialize -Pgenerate-dita -Dphase.inventory.check=DISBALED -Ddita.source.dir=target/test-inventory-keycloak' from terminal + } + @Test public void testCreateTestReportCertMetaData() throws Exception { final File inventoryDir = new File("src/test/resources/test-inventory-cert"); diff --git a/libraries/ae-inventory-processor/src/test/resources/test-inventory-01/bm_test.ditamap b/libraries/ae-inventory-processor/src/test/resources/test-inventory-01/bm_test.ditamap index 070063553..421de0d5a 100644 --- a/libraries/ae-inventory-processor/src/test/resources/test-inventory-01/bm_test.ditamap +++ b/libraries/ae-inventory-processor/src/test/resources/test-inventory-01/bm_test.ditamap @@ -2,8 +2,26 @@ - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/bm_test.ditamap b/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/bm_test.ditamap new file mode 100644 index 000000000..50083a395 --- /dev/null +++ b/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/bm_test.ditamap @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/keycloak-25.0.4-scanned.xls b/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/keycloak-25.0.4-scanned.xls new file mode 100644 index 000000000..0efdac163 Binary files /dev/null and b/libraries/ae-inventory-processor/src/test/resources/test-inventory-keycloak/keycloak-25.0.4-scanned.xls differ