Merge pull request 'wip(utils): mime type fix' (#19) from dev into master

Reviewed-on: #19
This commit is contained in:
Thibaut Valentin 2025-02-04 17:08:01 +01:00
commit 87f7a717f3
2 changed files with 19 additions and 24 deletions

33
pom.xml
View File

@ -1,6 +1,5 @@
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.titionfire</groupId>
<artifactId>ffsaf-site</artifactId>
@ -71,27 +70,33 @@
<artifactId>quarkus-arc</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
<groupId>io.quarkiverse.tika</groupId>
<artifactId>quarkus-tika</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-oidc</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-keycloak-authorization</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-keycloak-admin-rest-client</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
@ -109,11 +114,11 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-websockets</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-openapi</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-swagger-ui</artifactId>
@ -123,28 +128,22 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-cache</artifactId>
</dependency>
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-mailer</artifactId>
</dependency>
<dependency>
<groupId>net.sf.jmimemagic</groupId>
<artifactId>jmimemagic</artifactId>
<version>0.1.5</version>
</dependency>
</dependencies>
<build>
<plugins>
@ -213,9 +212,7 @@
</activation>
<properties>
<skipITs>false</skipITs>
<quarkus.native.additional-build-args>
--initialize-at-run-time=com.fasterxml.jackson.databind.ext.DOMDeserializer\,net.sf.jmimemagic
</quarkus.native.additional-build-args>
<quarkus.native.additional-build-args>--initialize-at-run-time=com.fasterxml.jackson.databind.ext.DOMDeserializer</quarkus.native.additional-build-args>
<quarkus.native.enabled>true</quarkus.native.enabled>
<quarkus.package.jar.enabled>false</quarkus.package.jar.enabled>
</properties>

View File

@ -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);