Skip to content

Commit 7906a2b

Browse files
tylerjmchughjodygarnett
authored andcommitted
Update put resource from file to use a limited input stream
1 parent 58ff1ba commit 7906a2b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

core/src/main/java/org/fao/geonet/api/records/attachments/AbstractStore.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ protected String getFilenameFromUrl(final URL fileUrl) {
195195
@Override
196196
public final MetadataResource putResource(final ServiceContext context, final String metadataUuid, final MultipartFile file,
197197
final MetadataResourceVisibility visibility) throws Exception {
198-
return putResource(context, metadataUuid, file.getOriginalFilename(), file.getInputStream(), null, visibility, true);
198+
return putResource(context, metadataUuid, file, visibility, true);
199199
}
200200

201201
@Override
@@ -205,7 +205,13 @@ public final MetadataResource putResource(final ServiceContext context, final St
205205
throw new NotAllowedException(String.format(
206206
"Uploaded resource '%s' contains forbidden character ; for metadata '%s'.", file.getOriginalFilename(), metadataUuid));
207207
}
208-
return putResource(context, metadataUuid, file.getOriginalFilename(), file.getInputStream(), null, visibility, approved);
208+
long fileSize = file.getSize();
209+
if (fileSize > maxUploadSize) {
210+
throw new InputStreamLimitExceededException(maxUploadSize, fileSize);
211+
}
212+
try (LimitedInputStream is = new LimitedInputStream(file.getInputStream(), maxUploadSize, fileSize)) {
213+
return putResource(context, metadataUuid, file.getOriginalFilename(), is, null, visibility, approved);
214+
}
209215
}
210216

211217
@Override

0 commit comments

Comments
 (0)