Skip to content

Conversation

@veronikaandersen
Copy link

Description

Vi har en dataType "Gjennomfoeringsplan" som har "allowedContentTypes": [ "application/pdf", "application/xml" ]
Dersom vi laster opp en xml-fil og setter headers med Content-type: "application/pdf" og Content-Disposition: "attachment; filename={{dataType}}.pdf", vil filen bli lastet opp uten valideringsfeil. På instansen vil det nå ligge et dataElement som har "filename" og "contentType" som tilsier at det er en PDF, men når man ser på innholdet så er det en XML.
Vi ønsker å validere innholdet i filen dersom det er en xml, og vil gjerne stole på at contentType og extension på filename faktisk stemmer overens med innholdet, så man kan sjekke basert på det.
MimeTypeValidator bør derfor sjekke file extension på opplastet fil, mot filename fra header.

Related Issue(s)

Verification

  • Your code builds clean without any errors or warnings
  • Manual testing done (required)
  • Relevant automated test added (if you find this hard, leave it and we'll help out)
  • All tests run green

Documentation

  • User documentation is updated with a separate linked PR in altinn-studio-docs. (if applicable)

Comment on lines +32 to +46
foreach (var fileExtension in fileMimeTypeResult.Extensions)
{
if (fileMimeTypeResult.Filename != null && !fileMimeTypeResult.Filename.EndsWith(fileExtension))
{
ValidationIssue error = new()
{
Source = "File",
Code = "Uploaded file extension is not the same as filename extension", // TODO - Add correct code
Severity = ValidationIssueSeverity.Error,
Description = $"The {fileMimeTypeResult.Filename} filename does not appear to have the same extension as uploaded file. File extension on uploaded file is .{fileExtension}"
};

errors.Add(error);
}
}

Check notice

Code scanning / CodeQL

Missed opportunity to use Where

This foreach loop [implicitly filters its target sequence](1) - consider filtering the sequence explicitly using '.Where(...)'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🔎 Review

Development

Successfully merging this pull request may close these issues.

2 participants