Explorar el Código

Adding additional verifications for upload

(cherry picked from commit c5bcbaabed)
pull/51/head
Martin Stockhammer hace 5 años
padre
commit
747cc55b24

+ 13
- 12
archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/api/DefaultFileUploadService.java Ver fichero

@@ -184,21 +184,22 @@ public class DefaultFileUploadService
public Boolean deleteFile( String fileName )
throws ArchivaRestServiceException
{
Path file = SystemUtils.getJavaIoTmpDir().toPath().resolve( fileName );
// we make sure, that there are no other path components in the filename:
String checkedFileName = Paths.get(fileName).getFileName().toString();
Path file = SystemUtils.getJavaIoTmpDir().toPath().resolve( checkedFileName );
log.debug( "delete file:{},exists:{}", file, Files.exists(file) );
boolean removed = getSessionFileMetadatas().remove( new FileMetadata( fileName ) );
// try with full name as ui only know the file name
if ( !removed )
{
/* unused */ getSessionFileMetadatas().remove( new FileMetadata( file.toString() ) );
}
try
{
Files.deleteIfExists( file );
}
catch ( IOException e )
{
log.error("Could not delete file {}: {}", file, e.getMessage(), e);
if ( !removed ) {
removed = getSessionFileMetadatas().remove(new FileMetadata(file.toString()));
}
if (removed) {
try {
Files.deleteIfExists(file);
return Boolean.TRUE;
} catch (IOException e) {
log.error("Could not delete file {}: {}", file, e.getMessage(), e);
}
}
return Boolean.FALSE;
}

Cargando…
Cancelar
Guardar