From f5dbe0b6af46daf6b7324af70cbd8ded0b84ad5c Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Tue, 4 Feb 2025 17:05:56 +0100 Subject: [PATCH] wip(utils): mime type fix --- pom.xml | 33 +++++++++---------- .../java/fr/titionfire/ffsaf/utils/Utils.java | 10 +++--- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index 37e0801..199dcd0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,5 @@ - - + + 4.0.0 fr.titionfire ffsaf-site @@ -71,27 +70,33 @@ quarkus-arc - io.quarkus - quarkus-junit5 - test + io.quarkiverse.tika + quarkus-tika + 2.0.4 + + io.quarkus + quarkus-junit5 + test + io.quarkus quarkus-oidc + io.quarkus quarkus-keycloak-authorization + io.quarkus quarkus-keycloak-admin-rest-client - org.projectlombok lombok @@ -109,11 +114,11 @@ io.quarkus quarkus-websockets - io.quarkus quarkus-smallrye-openapi + io.quarkus quarkus-swagger-ui @@ -123,28 +128,22 @@ io.quarkus quarkus-cache - com.github.librepdf openpdf 2.0.3 + org.apache.xmlgraphics fop 2.6 - io.quarkus quarkus-mailer - - net.sf.jmimemagic - jmimemagic - 0.1.5 - @@ -213,9 +212,7 @@ false - - --initialize-at-run-time=com.fasterxml.jackson.databind.ext.DOMDeserializer\,net.sf.jmimemagic - + --initialize-at-run-time=com.fasterxml.jackson.databind.ext.DOMDeserializer true false diff --git a/src/main/java/fr/titionfire/ffsaf/utils/Utils.java b/src/main/java/fr/titionfire/ffsaf/utils/Utils.java index 59728dc..584ea71 100644 --- a/src/main/java/fr/titionfire/ffsaf/utils/Utils.java +++ b/src/main/java/fr/titionfire/ffsaf/utils/Utils.java @@ -5,10 +5,7 @@ import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import jodd.net.MimeTypes; -import net.sf.jmimemagic.Magic; -import net.sf.jmimemagic.MagicException; -import net.sf.jmimemagic.MagicMatchNotFoundException; -import net.sf.jmimemagic.MagicParseException; +import org.apache.tika.Tika; import org.jboss.logging.Logger; import java.io.*; @@ -82,8 +79,9 @@ public class Utils { try (InputStream is = new BufferedInputStream(new ByteArrayInputStream(input))) { String mimeType; try { - mimeType = Magic.getMagicMatch(input, false).getMimeType(); - } catch (MagicParseException | MagicMatchNotFoundException | MagicException e) { + Tika tika = new Tika(); + mimeType = tika.detect(is);// Magic.getMagicMatch(input, false).getMimeType(); + } catch (IOException e) { mimeType = URLConnection.guessContentTypeFromStream(is); } String[] detectedExtensions = MimeTypes.findExtensionsByMimeTypes(mimeType, false);