Merge pull request #7454 from vector-im/feature/bma/upgrade_sanselan
Replace org.apache.sanselan:sanselan by org.apache.commons:commons-imaging
This commit is contained in:
commit
e41b1a6e8b
|
@ -0,0 +1 @@
|
||||||
|
Replace org.apache.sanselan:sanselan by org.apache.commons:commons-imaging
|
|
@ -160,7 +160,7 @@ ext.libs = [
|
||||||
'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji"
|
'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji"
|
||||||
],
|
],
|
||||||
apache : [
|
apache : [
|
||||||
'commonsImaging' : "org.apache.sanselan:sanselan:0.97-incubator"
|
'commonsImaging' : "org.apache.commons:commons-imaging:1.0-alpha3"
|
||||||
],
|
],
|
||||||
sentry: [
|
sentry: [
|
||||||
'sentryAndroid' : "io.sentry:sentry-android:$sentry"
|
'sentryAndroid' : "io.sentry:sentry-android:$sentry"
|
||||||
|
|
|
@ -176,7 +176,6 @@ ext.groups = [
|
||||||
'org.apache.ant',
|
'org.apache.ant',
|
||||||
'org.apache.commons',
|
'org.apache.commons',
|
||||||
'org.apache.httpcomponents',
|
'org.apache.httpcomponents',
|
||||||
'org.apache.sanselan',
|
|
||||||
'org.bouncycastle',
|
'org.bouncycastle',
|
||||||
'org.ccil.cowan.tagsoup',
|
'org.ccil.cowan.tagsoup',
|
||||||
'org.checkerframework',
|
'org.checkerframework',
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
package org.matrix.android.sdk.internal.session.content
|
package org.matrix.android.sdk.internal.session.content
|
||||||
|
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.apache.sanselan.Sanselan
|
import org.apache.commons.imaging.Imaging
|
||||||
import org.apache.sanselan.formats.jpeg.JpegImageMetadata
|
import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata
|
||||||
import org.apache.sanselan.formats.jpeg.exifRewrite.ExifRewriter
|
import org.apache.commons.imaging.formats.jpeg.exif.ExifRewriter
|
||||||
import org.apache.sanselan.formats.tiff.constants.ExifTagConstants
|
import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants
|
||||||
import org.apache.sanselan.formats.tiff.constants.GPSTagConstants
|
import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants
|
||||||
import org.matrix.android.sdk.api.MatrixCoroutineDispatchers
|
import org.matrix.android.sdk.api.MatrixCoroutineDispatchers
|
||||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.internal.util.TemporaryFileCreator
|
import org.matrix.android.sdk.internal.util.TemporaryFileCreator
|
||||||
|
@ -46,24 +46,13 @@ internal class ImageExifTagRemover @Inject constructor(
|
||||||
*/
|
*/
|
||||||
suspend fun removeSensitiveJpegExifTags(jpegImageFile: File): File = withContext(coroutineDispatchers.io) {
|
suspend fun removeSensitiveJpegExifTags(jpegImageFile: File): File = withContext(coroutineDispatchers.io) {
|
||||||
val outputSet = tryOrNull("Unable to read JpegImageMetadata") {
|
val outputSet = tryOrNull("Unable to read JpegImageMetadata") {
|
||||||
(Sanselan.getMetadata(jpegImageFile) as? JpegImageMetadata)?.exif?.outputSet
|
(Imaging.getMetadata(jpegImageFile) as? JpegImageMetadata)?.exif?.outputSet
|
||||||
} ?: return@withContext jpegImageFile
|
} ?: return@withContext jpegImageFile
|
||||||
|
|
||||||
tryOrNull("Unable to remove ExifData") {
|
tryOrNull("Unable to remove ExifData") {
|
||||||
outputSet.removeField(ExifTagConstants.EXIF_TAG_GPSINFO)
|
tagsToRemove.forEach { tagInfo ->
|
||||||
outputSet.removeField(ExifTagConstants.EXIF_TAG_SUBJECT_LOCATION_1)
|
outputSet.removeField(tagInfo)
|
||||||
outputSet.removeField(ExifTagConstants.EXIF_TAG_SUBJECT_LOCATION_2)
|
}
|
||||||
outputSet.removeField(ExifTagConstants.EXIF_TAG_USER_COMMENT)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_ALTITUDE)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_ALTITUDE_REF)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_LONGITUDE)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_LONGITUDE_REF)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_DEST_LONGITUDE)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_DEST_LONGITUDE_REF)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_LATITUDE)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_LATITUDE_REF)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_DEST_LATITUDE)
|
|
||||||
outputSet.removeField(GPSTagConstants.GPS_TAG_GPS_DEST_LATITUDE_REF)
|
|
||||||
} ?: return@withContext jpegImageFile
|
} ?: return@withContext jpegImageFile
|
||||||
|
|
||||||
val scrubbedFile = temporaryFileCreator.create()
|
val scrubbedFile = temporaryFileCreator.create()
|
||||||
|
@ -82,4 +71,12 @@ internal class ImageExifTagRemover @Inject constructor(
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val tagsToRemove
|
||||||
|
get() = GpsTagConstants.ALL_GPS_TAGS +
|
||||||
|
listOf(
|
||||||
|
ExifTagConstants.EXIF_TAG_GPSINFO,
|
||||||
|
ExifTagConstants.EXIF_TAG_SUBJECT_LOCATION,
|
||||||
|
ExifTagConstants.EXIF_TAG_USER_COMMENT,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue