From 89b1c533d1b48b8b339b9c74a59c2ce73e6431af Mon Sep 17 00:00:00 2001
From: Joaquín Reñé <jrene@curisit.net>
Date: Tue, 27 May 2025 10:27:57 +0000
Subject: [PATCH] #4399 - Fix JPA and Serialization for new JPA versions (new eclipse envs)

---
 securis/src/main/java/net/curisit/securis/GzipFilter.java                       |   20 
 securis/src/main/java/net/curisit/securis/RestServicesApplication.java          |    4 
 securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java |   14 
 securis/src/main/java/net/curisit/securis/services/ApiResource.java             |   26 
 securis/src/main/java/net/curisit/securis/db/BlockedRequest.java                |   14 
 securis/src/main/java/net/curisit/securis/db/User.java                          |   18 
 securis/src/main/java/net/curisit/securis/db/Application.java                   |   26 
 securis/src/main/java/net/curisit/securis/services/helpers/MetadataHelper.java  |    6 
 securis/src/main/java/net/curisit/securis/db/common/SystemParams.java           |    6 
 securis/src/main/webapp/src/lang/messages_fr.json                               |   65 ++
 securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java           |   16 
 securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java           |   16 
 securis/src/main/java/net/curisit/securis/services/ApplicationResource.java     |   36 
 securis/src/main/webapp/META-INF/MANIFEST.MF                                    |    3 
 securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java     |   36 
 securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java          |   20 
 securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java   |    8 
 securis/src/main/java/net/curisit/securis/utils/TokenHelper.java                |   29 
 securis/src/main/webapp/WEB-INF/web.xml                                         |    2 
 securis/src/main/java/net/curisit/securis/utils/CacheTTL.java                   |    4 
 securis/src/main/java/net/curisit/securis/db/LicenseHistory.java                |   18 
 securis/src/main/java/net/curisit/securis/services/LicenseResource.java         |   36 
 securis/src/main/java/net/curisit/securis/ioc/EntityManagerProvider.java        |    9 
 securis/src/main/webapp/src/lang/messages_es.json                               |   65 ++
 securis/src/main/java/net/curisit/securis/db/LicenseType.java                   |   24 
 securis/src/main/java/net/curisit/securis/db/PackMetadata.java                  |   16 
 securis/src/main/java/net/curisit/securis/services/OrganizationResource.java    |   36 
 securis/src/main/java/net/curisit/securis/ioc/EnsureTransaction.java            |    2 
 securis/src/main/java/net/curisit/securis/ioc/RequestsInterceptor.java          |  230 +++----
 securis/src/main/java/net/curisit/securis/AuthFilter.java                       |   20 
 securis/src/main/java/net/curisit/securis/services/BasicServices.java           |   32 
 securis/src/main/java/net/curisit/securis/DevFilter.java                        |   20 
 securis/src/main/java/net/curisit/securis/db/Pack.java                          |   24 
 securis/src/main/java/net/curisit/securis/services/PackResource.java            |   38 
 securis/src/main/java/net/curisit/securis/db/License.java                       |   30 
 securis/src/main/java/net/curisit/securis/utils/GZipServletResponseWrapper.java |    8 
 /dev/null                                                                       |  155 -----
 securis/pom.xml                                                                 |  334 ++++------
 securis/pom.xml.old                                                             |  249 ++++++++
 securis/src/main/java/net/curisit/securis/services/helpers/UserHelper.java      |    6 
 securis/src/main/webapp/.vscode/settings.json                                   |    1 
 securis/src/main/java/net/curisit/securis/db/Organization.java                  |   28 
 securis/src/main/java/net/curisit/securis/services/UserResource.java            |   44 
 securis/src/main/java/net/curisit/securis/security/BasicSecurityContext.java    |    2 
 securis/src/main/java/net/curisit/securis/ioc/SecurisModule.java                |    8 
 securis/src/main/java/net/curisit/securis/utils/EmailManager.java               |    2 
 46 files changed, 955 insertions(+), 851 deletions(-)

diff --git a/securis/pom.xml b/securis/pom.xml
index b01aa2c..45ef01e 100644
--- a/securis/pom.xml
+++ b/securis/pom.xml
@@ -1,220 +1,136 @@
-<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	
-	<name>SeCuris-Server</name>
-	<groupId>net.curisit</groupId>
-	<artifactId>securis-server</artifactId>
-	<version>2.0.1</version>
-	<modelVersion>4.0.0</modelVersion>
-	
-	<description>CurisTEC Server Licenses</description>
-	
-	<organization>
-	    <name>CURISTEC</name>
-	</organization>
+<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>net.curisit</groupId>
+    <artifactId>securis-server</artifactId>
+    <version>2.0.1</version>
+    <name>SeCuris-Server</name>
 
-	<properties>
-	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-   	    <curisit.theme>default</curisit.theme>
-		<maven.version>3.10.0</maven.version>
-	    <maven.resources.overwrite>true</maven.resources.overwrite>
-	    <maven.compiler.debug>true</maven.compiler.debug>
-		<maven.compiler.source>21</maven.compiler.source>
-		<maven.compiler.target>21</maven.compiler.target>		
-		<maven-assembly-plugin.version>3.4.2</maven-assembly-plugin.version>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>21</maven.compiler.source>
+        <maven.compiler.target>21</maven.compiler.target>
+        <resteasy.version>6.2.4.Final</resteasy.version>
+        <hibernate.version>5.6.15.Final</hibernate.version>
+        <jakarta.persistence.version>3.1.0</jakarta.persistence.version>
+        <jakarta.servlet.version>6.0.0</jakarta.servlet.version>
+        <jakarta.cdi.version>4.0.1</jakarta.cdi.version>
+        <log4j.version>2.18.0</log4j.version>
+    </properties>
 
-		<curistec.internal.version>3.3.0</curistec.internal.version>
-		<securis.version>1.3.1</securis.version>
+    <dependencies>
+        <!-- Internas -->
+        <dependency>
+            <groupId>net.curisit</groupId>
+            <artifactId>securis-client</artifactId>
+            <version>1.3.1</version>
+        </dependency>
 
-		<log4j.version>2.18.0</log4j.version>
-		<hibernate.version>4.3.6.Final</hibernate.version>
-
-		<javax.servlet.version>3.1.0</javax.servlet.version>
-		<jboss.version>3.0.13.Final</jboss.version>
-		<jboss-weld.version>2.2.9.Final</jboss-weld.version>
-		<jboss-jandex.version>1.2.2.Final</jboss-jandex.version>	
-		
-		<commons-cli.version>1.2</commons-cli.version>
-		<lang.version>2.6</lang.version>
-		<lang3.version>3.17.0</lang3.version>
-		<io.version>2.17.0</io.version>
-		<httpclient.version>4.5.6</httpclient.version>
-		<httpmime.version>4.4.1</httpmime.version>
-		<jackson.version>2.14.1</jackson.version>
-	</properties>
-	   		
-	<dependencies>
+        <!-- RESTEasy 6 - Jakarta EE 10 -->
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-core</artifactId>
+            <version>${resteasy.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-servlet-initializer</artifactId>
+            <version>${resteasy.version}</version>
+        </dependency>
 		<dependency>
-			<groupId>net.curisit.integrity</groupId>
-			<artifactId>commons-curis</artifactId>
-			<version>${curistec.internal.version}</version>
-			<exclusions>
-				<exclusion>
-					<groupId>org.apache.logging.log4j</groupId>
-					<artifactId>log4j-core</artifactId>
-				</exclusion>
-				<exclusion>
-					<artifactId>jackson-core</artifactId>
-					<groupId>com.fasterxml.jackson.core</groupId>
-				</exclusion>
-				<exclusion>
-					<artifactId>jackson-databind</artifactId>
-					<groupId>com.fasterxml.jackson.core</groupId>
-				</exclusion>
-			</exclusions>
+		  <groupId>org.jboss.resteasy</groupId>
+		  <artifactId>resteasy-multipart-provider</artifactId>
+		  <version>${resteasy.version}</version>
 		</dependency>
+        <dependency>
+            <groupId>org.jboss.resteasy</groupId>
+            <artifactId>resteasy-jackson2-provider</artifactId>
+            <version>${resteasy.version}</version>
+        </dependency>
 		<dependency>
-			<groupId>net.curisit</groupId>
-			<artifactId>securis-client</artifactId>
-			<version>${securis.version}</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>jackson-databind</artifactId>
-					<groupId>com.fasterxml.jackson.core</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-web</artifactId>
-			<version>${log4j.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-entitymanager</artifactId>
-			<version>${hibernate.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpclient</artifactId>
-			<version>${httpclient.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpmime</artifactId>
-			<version>${httpmime.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-lang</groupId>
-			<artifactId>commons-lang</artifactId>
-			<version>${lang.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.enterprise</groupId>
-			<artifactId>cdi-api</artifactId>
-			<version>1.2</version>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>javax.servlet-api</artifactId>
-			<version>${javax.servlet.version}</version>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.resteasy</groupId>
-			<artifactId>resteasy-multipart-provider</artifactId>
-			<version>${jboss.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.resteasy</groupId>
-			<artifactId>resteasy-jaxrs</artifactId>
-			<version>${jboss.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.weld.servlet</groupId>
-			<artifactId>weld-servlet</artifactId>
-			<version>${jboss-weld.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss</groupId>
-			<artifactId>jandex</artifactId>
-			<version>${jboss-jandex.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.resteasy</groupId>
-			<artifactId>resteasy-jackson2-provider</artifactId>
-			<version>${jboss.version}</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>jackson-core</artifactId>
-					<groupId>com.fasterxml.jackson.core</groupId>
-				</exclusion>
-				<exclusion>
-					<artifactId>jackson-databind</artifactId>
-					<groupId>com.fasterxml.jackson.core</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
+		  <groupId>org.apache.httpcomponents</groupId>
+		  <artifactId>httpmime</artifactId>
+		  <version>4.5.13</version>
+		</dependency>        
 		
 		<dependency>
-			<groupId>org.jboss.resteasy</groupId>
-			<artifactId>resteasy-cdi</artifactId>
-			<version>${jboss.version}</version>
+		  <groupId>org.apache.commons</groupId>
+		  <artifactId>commons-lang3</artifactId>
+		  <version>3.12.0</version>
 		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.jaxrs</groupId>
-			<artifactId>jackson-jaxrs-json-provider</artifactId>
-			<version>${jackson.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-annotations</artifactId>
-			<version>${jackson.version}</version>
-		</dependency>
-	</dependencies>
-	
-	<build>
-		<plugins>
- 			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-       			<version>${maven.version}</version>
- 				<configuration>
-                <source>${maven.compiler.source}</source>
-                <target>${maven.compiler.target}</target>
-                <encoding>${project.build.sourceEncoding}</encoding>
-				<debug>true</debug>
-				<showDeprecation>true</showDeprecation>
-				<showWarnings>true</showWarnings>
-				</configuration>
-			</plugin>
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>${maven-assembly-plugin.version}</version>
-				<configuration>
-					<formats>
-						<format>zip</format>
-						<format>tar.gz</format>
-					</formats>
-					<descriptors>
-						<descriptor>etc/build/pro/mvn_descriptor.xml</descriptor>
-					</descriptors>
-					<appendAssemblyId>false</appendAssemblyId>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-	
-	<repositories>
-		<repository>
-			<id>internal</id>
-			<name>CurisIT Repository</name>
-			<url>http://archiva.curisit.net/archiva/repository/internal</url>
-		</repository>
-		<repository>
-			<id>curistec</id>
-			<name>CurisTec Corporate Repository</name>
-			<url>http://archiva.curisit.net/archiva/repository/internal/</url>
-			<layout>default</layout>
-		</repository>
-		<repository>
-			<id>curistecSnapshot</id>
-			<name>CurisTec Snapshots</name>
-			<url>http://archiva.curisit.net/archiva/repository/snapshots/</url>
-			<layout>default</layout>
-		</repository>
-	</repositories>
 
+        <!-- Jakarta EE APIs -->
+        <dependency>
+            <groupId>jakarta.persistence</groupId>
+            <artifactId>jakarta.persistence-api</artifactId>
+            <version>${jakarta.persistence.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>${jakarta.servlet.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.enterprise</groupId>
+            <artifactId>jakarta.enterprise.cdi-api</artifactId>
+            <version>${jakarta.cdi.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Hibernate 5 compatible con Jakarta Persistence -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>${hibernate.version}</version>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>${log4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>${log4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-web</artifactId>
+            <version>${log4j.version}</version>
+        </dependency>
+        
+		<dependency>
+		    <groupId>com.google.inject</groupId>
+		    <artifactId>guice</artifactId>
+		    <version>5.1.0</version>
+		</dependency>
+        
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.10.0</version>
+                <configuration>
+                    <source>${maven.compiler.source}</source>
+                    <target>${maven.compiler.target}</target>
+                    <encoding>${project.build.sourceEncoding}</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>central</id>
+            <url>https://repo.maven.apache.org/maven2</url>
+        </repository>
+    </repositories>
 </project>
\ No newline at end of file
diff --git a/securis/pom.xml.old b/securis/pom.xml.old
new file mode 100644
index 0000000..ad4770d
--- /dev/null
+++ b/securis/pom.xml.old
@@ -0,0 +1,249 @@
+<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	
+	<name>SeCuris-Server</name>
+	<groupId>net.curisit</groupId>
+	<artifactId>securis-server</artifactId>
+	<version>2.0.1</version>
+	<modelVersion>4.0.0</modelVersion>
+	
+	<description>CurisTEC Server Licenses</description>
+	
+	<organization>
+	    <name>CURISTEC</name>
+	</organization>
+
+	<properties>
+	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+   	    <curisit.theme>default</curisit.theme>
+		<maven.version>3.10.0</maven.version>
+	    <maven.resources.overwrite>true</maven.resources.overwrite>
+	    <maven.compiler.debug>true</maven.compiler.debug>
+		<maven.compiler.source>11</maven.compiler.source>
+		<maven.compiler.target>11</maven.compiler.target>		
+		<maven-assembly-plugin.version>3.4.2</maven-assembly-plugin.version>
+
+		<curistec.internal.version>3.3.0</curistec.internal.version>
+		<securis.version>1.3.1</securis.version>
+
+		<log4j.version>2.18.0</log4j.version>
+		<hibernate.version>4.3.6.Final</hibernate.version>
+
+		<javax.servlet.version>3.1.0</javax.servlet.version>
+		<jboss.version>3.0.24.Final</jboss.version>
+		<jboss-weld.version>2.2.9.Final</jboss-weld.version>
+		<jboss-jandex.version>1.2.2.Final</jboss-jandex.version>	
+		
+		<commons-cli.version>1.2</commons-cli.version>
+		<lang.version>2.6</lang.version>
+		<lang3.version>3.17.0</lang3.version>
+		<io.version>2.17.0</io.version>
+		<httpclient.version>4.5.6</httpclient.version>
+		<httpmime.version>4.4.1</httpmime.version>
+		<jackson.version>2.14.1</jackson.version>
+	</properties>
+	   		
+	<dependencies>
+		<dependency>
+			<groupId>net.curisit.integrity</groupId>
+			<artifactId>commons-curis</artifactId>
+			<version>${curistec.internal.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.apache.logging.log4j</groupId>
+					<artifactId>log4j-core</artifactId>
+				</exclusion>
+				<exclusion>
+					<artifactId>jackson-core</artifactId>
+					<groupId>com.fasterxml.jackson.core</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>jackson-databind</artifactId>
+					<groupId>com.fasterxml.jackson.core</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>net.curisit</groupId>
+			<artifactId>securis-client</artifactId>
+			<version>${securis.version}</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>jackson-databind</artifactId>
+					<groupId>com.fasterxml.jackson.core</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+		  <groupId>org.apache.logging.log4j</groupId>
+		  <artifactId>log4j-core</artifactId>
+		  <version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+		  <groupId>org.apache.logging.log4j</groupId>
+		  <artifactId>log4j-api</artifactId>
+		  <version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-web</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-entitymanager</artifactId>
+			<version>${hibernate.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpclient</artifactId>
+			<version>${httpclient.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpmime</artifactId>
+			<version>${httpmime.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-lang</groupId>
+			<artifactId>commons-lang</artifactId>
+			<version>${lang.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.enterprise</groupId>
+			<artifactId>cdi-api</artifactId>
+			<version>1.2</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+			<version>${javax.servlet.version}</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.resteasy</groupId>
+			<artifactId>resteasy-multipart-provider</artifactId>
+			<version>${jboss.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.resteasy</groupId>
+			<artifactId>resteasy-jaxrs</artifactId>
+			<version>${jboss.version}</version>
+		</dependency>
+		<dependency>
+		  <groupId>org.jboss.resteasy</groupId>
+		  <artifactId>resteasy-servlet</artifactId>
+		  <version>${jboss.version}</version>
+		</dependency>		
+		<dependency>
+		    <groupId>org.jboss.resteasy</groupId>
+		    <artifactId>resteasy-servlet-initializer</artifactId>
+		    <version>${jboss.version}</version>
+		</dependency>		<dependency>
+			<groupId>org.jboss.weld.servlet</groupId>
+			<artifactId>weld-servlet</artifactId>
+			<version>${jboss-weld.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss</groupId>
+			<artifactId>jandex</artifactId>
+			<version>${jboss-jandex.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.resteasy</groupId>
+			<artifactId>resteasy-jackson2-provider</artifactId>
+			<version>${jboss.version}</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>jackson-core</artifactId>
+					<groupId>com.fasterxml.jackson.core</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>jackson-databind</artifactId>
+					<groupId>com.fasterxml.jackson.core</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		
+		<dependency>
+			<groupId>org.jboss.resteasy</groupId>
+			<artifactId>resteasy-cdi</artifactId>
+			<version>${jboss.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.jaxrs</groupId>
+			<artifactId>jackson-jaxrs-json-provider</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-annotations</artifactId>
+			<version>${jackson.version}</version>
+		</dependency>
+		<dependency>
+		  <groupId>jakarta.servlet</groupId>
+		  <artifactId>jakarta.servlet-api</artifactId>
+		  <version>5.0.0</version>
+		  <scope>provided</scope>
+		</dependency>
+	</dependencies>
+	
+	<build>
+		<plugins>
+ 			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+       			<version>${maven.version}</version>
+ 				<configuration>
+                <source>${maven.compiler.source}</source>
+                <target>${maven.compiler.target}</target>
+                <encoding>${project.build.sourceEncoding}</encoding>
+				<debug>true</debug>
+				<showDeprecation>true</showDeprecation>
+				<showWarnings>true</showWarnings>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>${maven-assembly-plugin.version}</version>
+				<configuration>
+					<formats>
+						<format>zip</format>
+						<format>tar.gz</format>
+					</formats>
+					<descriptors>
+						<descriptor>etc/build/pro/mvn_descriptor.xml</descriptor>
+					</descriptors>
+					<appendAssemblyId>false</appendAssemblyId>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	
+	<repositories>
+		<repository>
+			<id>internal</id>
+			<name>CurisIT Repository</name>
+			<url>http://archiva.curisit.net/archiva/repository/internal</url>
+		</repository>
+		<repository>
+			<id>curistec</id>
+			<name>CurisTec Corporate Repository</name>
+			<url>http://archiva.curisit.net/archiva/repository/internal/</url>
+			<layout>default</layout>
+		</repository>
+		<repository>
+			<id>curistecSnapshot</id>
+			<name>CurisTec Snapshots</name>
+			<url>http://archiva.curisit.net/archiva/repository/snapshots/</url>
+			<layout>default</layout>
+		</repository>
+		<repository>
+		    <id>jboss-public</id>
+		    <url>https://repository.jboss.org/nexus/content/groups/public/</url>
+		</repository>
+	</repositories>
+
+</project>
\ No newline at end of file
diff --git a/securis/src/main/java/net/curisit/securis/AuthFilter.java b/securis/src/main/java/net/curisit/securis/AuthFilter.java
index 4d5e1e8..48acee4 100644
--- a/securis/src/main/java/net/curisit/securis/AuthFilter.java
+++ b/securis/src/main/java/net/curisit/securis/AuthFilter.java
@@ -3,16 +3,16 @@
 import java.io.IOException;
 import java.security.Principal;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.annotation.WebFilter;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java b/securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java
index 8578d51..7726c7d 100644
--- a/securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java
+++ b/securis/src/main/java/net/curisit/securis/DefaultExceptionHandler.java
@@ -1,15 +1,15 @@
 package net.curisit.securis;
 
-import javax.persistence.EntityManager;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.ForbiddenException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.SecurityContext;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
+import jakarta.persistence.EntityManager;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.ForbiddenException;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.ext.ExceptionMapper;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/DevFilter.java b/securis/src/main/java/net/curisit/securis/DevFilter.java
index 4889e10..2ed1e4d 100644
--- a/securis/src/main/java/net/curisit/securis/DevFilter.java
+++ b/securis/src/main/java/net/curisit/securis/DevFilter.java
@@ -2,16 +2,16 @@
 
 import java.io.IOException;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.annotation.WebFilter;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/GzipFilter.java b/securis/src/main/java/net/curisit/securis/GzipFilter.java
index 4c0682c..a8ceaee 100644
--- a/securis/src/main/java/net/curisit/securis/GzipFilter.java
+++ b/securis/src/main/java/net/curisit/securis/GzipFilter.java
@@ -2,16 +2,16 @@
 
 import java.io.IOException;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.annotation.WebFilter;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/RestServicesApplication.java b/securis/src/main/java/net/curisit/securis/RestServicesApplication.java
index c5b3b95..fc1c0b5 100644
--- a/securis/src/main/java/net/curisit/securis/RestServicesApplication.java
+++ b/securis/src/main/java/net/curisit/securis/RestServicesApplication.java
@@ -3,8 +3,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Application;
+import jakarta.ws.rs.ApplicationPath;
+import jakarta.ws.rs.core.Application;
 
 import net.curisit.securis.ioc.RequestsInterceptor;
 import net.curisit.securis.services.ApiResource;
diff --git a/securis/src/main/java/net/curisit/securis/db/Application.java b/securis/src/main/java/net/curisit/securis/db/Application.java
index dba0b7b..138481f 100644
--- a/securis/src/main/java/net/curisit/securis/db/Application.java
+++ b/securis/src/main/java/net/curisit/securis/db/Application.java
@@ -4,19 +4,19 @@
 import java.util.Date;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java b/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java
index 8123dae..eafd418 100644
--- a/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java
+++ b/securis/src/main/java/net/curisit/securis/db/ApplicationMetadata.java
@@ -4,14 +4,14 @@
 import java.util.Date;
 import java.util.Objects;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java b/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
index b0b2826..74f562b 100644
--- a/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
+++ b/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
@@ -3,13 +3,13 @@
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EntityManager;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
 
 import net.curisit.integrity.commons.Utils;
 
diff --git a/securis/src/main/java/net/curisit/securis/db/License.java b/securis/src/main/java/net/curisit/securis/db/License.java
index 1d721da..8b36055 100644
--- a/securis/src/main/java/net/curisit/securis/db/License.java
+++ b/securis/src/main/java/net/curisit/securis/db/License.java
@@ -6,21 +6,21 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EntityListeners;
-import javax.persistence.EntityManager;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.NoResultException;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.TypedQuery;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EntityListeners;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java b/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
index b063ffe..7fd0b03 100644
--- a/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseHistory.java
@@ -3,15 +3,15 @@
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseType.java b/securis/src/main/java/net/curisit/securis/db/LicenseType.java
index bd180ef..1733787 100644
--- a/securis/src/main/java/net/curisit/securis/db/LicenseType.java
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseType.java
@@ -4,18 +4,18 @@
 import java.util.Date;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java b/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java
index 777801b..e17ae8c 100644
--- a/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java
+++ b/securis/src/main/java/net/curisit/securis/db/LicenseTypeMetadata.java
@@ -3,14 +3,14 @@
 import java.io.Serializable;
 import java.util.Objects;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/securis/src/main/java/net/curisit/securis/db/Organization.java b/securis/src/main/java/net/curisit/securis/db/Organization.java
index 4084245..6b8b217 100644
--- a/securis/src/main/java/net/curisit/securis/db/Organization.java
+++ b/securis/src/main/java/net/curisit/securis/db/Organization.java
@@ -6,20 +6,20 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/db/Pack.java b/securis/src/main/java/net/curisit/securis/db/Pack.java
index b4ee893..aee90fa 100644
--- a/securis/src/main/java/net/curisit/securis/db/Pack.java
+++ b/securis/src/main/java/net/curisit/securis/db/Pack.java
@@ -7,18 +7,18 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
 
 import org.hibernate.annotations.Type;
 
diff --git a/securis/src/main/java/net/curisit/securis/db/PackMetadata.java b/securis/src/main/java/net/curisit/securis/db/PackMetadata.java
index c6f07c2..d35b22c 100644
--- a/securis/src/main/java/net/curisit/securis/db/PackMetadata.java
+++ b/securis/src/main/java/net/curisit/securis/db/PackMetadata.java
@@ -3,14 +3,14 @@
 import java.io.Serializable;
 import java.util.Objects;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/securis/src/main/java/net/curisit/securis/db/User.java b/securis/src/main/java/net/curisit/securis/db/User.java
index 39d1509..052082f 100644
--- a/securis/src/main/java/net/curisit/securis/db/User.java
+++ b/securis/src/main/java/net/curisit/securis/db/User.java
@@ -9,15 +9,15 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonIgnore;
diff --git a/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java b/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
index 100b5c4..19879f2 100644
--- a/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
+++ b/securis/src/main/java/net/curisit/securis/db/common/PersistentEnumUserType.java
@@ -7,7 +7,7 @@
 import java.sql.Types;
 
 import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
 import org.hibernate.usertype.UserType;
 
 public abstract class PersistentEnumUserType<T extends CodedEnum> implements UserType {
@@ -58,7 +58,8 @@
     }
 
     @Override
-    public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException {
+    public Object nullSafeGet(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner)
+            throws HibernateException, SQLException {
         String code = rs.getString(names[0]);
         for (CodedEnum en : returnedClass().getEnumConstants()) {
             if (en.getCode().equals(code)) {
@@ -69,8 +70,13 @@
     }
 
     @Override
-    public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor session) throws HibernateException, SQLException {
-        st.setString(index, value == null ? null : ((CodedEnum) value).getCode());
+    public void nullSafeSet(PreparedStatement st, Object value, int index, SharedSessionContractImplementor session)
+            throws HibernateException, SQLException {
+        if (value == null) {
+            st.setNull(index, java.sql.Types.VARCHAR);
+        } else {
+            st.setString(index, ((CodedEnum) value).getCode());
+        }
     }
 
 }
diff --git a/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java b/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
index ac97ba0..0e745f2 100644
--- a/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
+++ b/securis/src/main/java/net/curisit/securis/db/common/SystemParams.java
@@ -2,9 +2,9 @@
 
 import java.util.Date;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
 
 import net.curisit.integrity.commons.Utils;
 import net.curisit.securis.db.Settings;
diff --git a/securis/src/main/java/net/curisit/securis/ioc/EnsureTransaction.java b/securis/src/main/java/net/curisit/securis/ioc/EnsureTransaction.java
index 017c46f..f2e9008 100644
--- a/securis/src/main/java/net/curisit/securis/ioc/EnsureTransaction.java
+++ b/securis/src/main/java/net/curisit/securis/ioc/EnsureTransaction.java
@@ -5,7 +5,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import javax.interceptor.InterceptorBinding;
+import jakarta.interceptor.InterceptorBinding;
 
 @Target({
         ElementType.METHOD, ElementType.TYPE
diff --git a/securis/src/main/java/net/curisit/securis/ioc/EntityManagerProvider.java b/securis/src/main/java/net/curisit/securis/ioc/EntityManagerProvider.java
index 6678530..be020f5 100644
--- a/securis/src/main/java/net/curisit/securis/ioc/EntityManagerProvider.java
+++ b/securis/src/main/java/net/curisit/securis/ioc/EntityManagerProvider.java
@@ -1,8 +1,9 @@
 package net.curisit.securis.ioc;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.Persistence;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -13,7 +14,7 @@
     @SuppressWarnings("unused")
 	private static final Logger log = LogManager.getLogger(EntityManagerProvider.class);
 
-    private final EntityManagerFactory entityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("localdb");
+    private final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("localdb");
 
     public EntityManager getEntityManager() {
         return entityManagerFactory.createEntityManager();
diff --git a/securis/src/main/java/net/curisit/securis/ioc/RequestsInterceptor.java b/securis/src/main/java/net/curisit/securis/ioc/RequestsInterceptor.java
index 391ec7f..fd61433 100644
--- a/securis/src/main/java/net/curisit/securis/ioc/RequestsInterceptor.java
+++ b/securis/src/main/java/net/curisit/securis/ioc/RequestsInterceptor.java
@@ -5,30 +5,25 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.Priorities;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.Provider;
-import javax.ws.rs.ext.WriterInterceptor;
-import javax.ws.rs.ext.WriterInterceptorContext;
+import jakarta.annotation.Priority;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.ws.rs.Priorities;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ResourceInfo;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ext.Provider;
+import jakarta.ws.rs.ext.WriterInterceptor;
+import jakarta.ws.rs.ext.WriterInterceptorContext;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.jboss.resteasy.core.Dispatcher;
-import org.jboss.resteasy.core.ResourceMethodInvoker;
-import org.jboss.resteasy.core.ServerResponse;
-import org.jboss.resteasy.spi.Failure;
-import org.jboss.resteasy.spi.HttpRequest;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
 
 import net.curisit.securis.db.User;
 import net.curisit.securis.security.BasicSecurityContext;
@@ -39,6 +34,7 @@
 @Provider
 @Priority(Priorities.AUTHENTICATION)
 public class RequestsInterceptor implements ContainerRequestFilter, WriterInterceptor {
+
 	private static final Logger LOG = LogManager.getLogger(RequestsInterceptor.class);
 
 	@Context
@@ -47,171 +43,131 @@
 	@Context
 	private HttpServletRequest servletRequest;
 
+	@Context
+	private ResourceInfo resourceInfo;
+
 	@Inject
 	private CacheTTL cache;
 
 	@Inject
 	private TokenHelper tokenHelper;
 
-	@Context
-	private Dispatcher dispatcher;
-
 	@Inject
 	private EntityManagerProvider emProvider;
 
+	private static final String EM_CONTEXT_PROPERTY = "curisit.entitymanager";
+
 	@Override
-	public void filter(ContainerRequestContext containerRequestContext) throws IOException {
+	public void filter(ContainerRequestContext requestContext) throws IOException {
 		EntityManager em = emProvider.getEntityManager();
 		LOG.debug("GETTING EM: {}", em);
 
-		ResteasyProviderFactory.pushContext(EntityManager.class, em);
+		// Guardamos el EntityManager en el contexto para recuperación posterior
+		requestContext.setProperty(EM_CONTEXT_PROPERTY, em);
 
-		ResourceMethodInvoker methodInvoker = (ResourceMethodInvoker) containerRequestContext.getProperty("org.jboss.resteasy.core.ResourceMethodInvoker");
-		Method method = methodInvoker.getMethod();
+		Method method = resourceInfo.getResourceMethod();
 
-		LOG.debug("Stored in context, em: {}, {}", em, method.toGenericString());
-
-		boolean next = checkSecurableMethods(containerRequestContext, method);
-		if (next) {
-			prepareTransaction(containerRequestContext, method, em);
+		if (checkSecurableMethods(requestContext, method)) {
+			if (method.isAnnotationPresent(EnsureTransaction.class)) {
+				LOG.debug("Beginning transaction");
+				em.getTransaction().begin();
+			}
 		}
 	}
 
-	private void prepareTransaction(ContainerRequestContext containerRequestContext, Method method, EntityManager em) {
+	private boolean checkSecurableMethods(ContainerRequestContext ctx, Method method) {
+		if (!method.isAnnotationPresent(Securable.class)) return true;
 
-		if (method.isAnnotationPresent(EnsureTransaction.class)) {
-			LOG.debug("Beginning a new transaction");
-			em.getTransaction().begin();
-		}
-	}
-
-	private boolean checkSecurableMethods(ContainerRequestContext containerRequestContext, Method method) {
-		if (!method.isAnnotationPresent(Securable.class)) {
-			return true;
-		}
 		String token = servletRequest.getHeader(TokenHelper.TOKEN_HEADER_PÀRAM);
 		if (token == null || !tokenHelper.isTokenValid(token)) {
-			LOG.warn("Access denied, Token not valid: {} for method: {}::{}", token, method.getDeclaringClass(), method.getName());
-			containerRequestContext.abortWith(Response.status(Status.UNAUTHORIZED).build());
+			LOG.warn("Access denied, invalid token");
+			ctx.abortWith(Response.status(Status.UNAUTHORIZED).build());
 			return false;
-		} else {
-			Securable securable = method.getAnnotation(Securable.class);
-			// If roles == 0 we only need to validate the token
-			String username = tokenHelper.extractUserFromToken(token);
-			int userRoles = getUserRoles(username);
-			if (securable.roles() != 0 && (securable.roles() & userRoles) == 0) {
-				LOG.warn("Method {} requires roles: {}, but user {} hasn't got them", method.getName(), securable.roles(), username);
-				containerRequestContext.abortWith(Response.status(Status.UNAUTHORIZED).build());
-				return false;
-			}
-			Set<Integer> orgs = getUserOrganizations(username);
-			Set<Integer> apps = getUserApplications(username);
-
-			BasicSecurityContext scw = new BasicSecurityContext(username, userRoles, servletRequest.isSecure());
-			scw.setOrganizationsIds(orgs);
-			scw.setApplicationsIds(apps);
-			containerRequestContext.setSecurityContext(scw);
-			// Next line provide injection in resource methods
-			ResteasyProviderFactory.pushContext(BasicSecurityContext.class, scw);
-			LOG.debug("Added custom SecurityContext for user {}, orgs: {}", username, orgs);
 		}
+
+		String username = tokenHelper.extractUserFromToken(token);
+		int roles = getUserRoles(username);
+		Securable securable = method.getAnnotation(Securable.class);
+
+		if (securable.roles() != 0 && (securable.roles() & roles) == 0) {
+			LOG.warn("User {} lacks required roles for method {}", username, method.getName());
+			ctx.abortWith(Response.status(Status.UNAUTHORIZED).build());
+			return false;
+		}
+
+		BasicSecurityContext sc = new BasicSecurityContext(username, roles, servletRequest.isSecure());
+		sc.setOrganizationsIds(getUserOrganizations(username));
+		sc.setApplicationsIds(getUserApplications(username));
+		ctx.setSecurityContext(sc);
 		return true;
-
-	}
-
-	private Set<Integer> getUserOrganizations(String username) {
-		@SuppressWarnings("unchecked")
-		Set<Integer> userOrgs = cache.get("orgs_" + username, Set.class);
-		if (userOrgs == null) {
-			EntityManager em = ResteasyProviderFactory.getContextData(EntityManager.class);
-
-			// Theorically this shouldn't be never null, but just in case...
-			User user = em.find(User.class, username);
-			if (user != null) {
-				userOrgs = user.getAllOrgsIds();
-				// We store user orgs in cache only for one hour
-				cache.set("orgs_" + username, userOrgs, 3600);
-			}
-		}
-
-		return userOrgs;
-	}
-
-	private Set<Integer> getUserApplications(String username) {
-		@SuppressWarnings("unchecked")
-		Set<Integer> userApps = cache.get("apps_" + username, Set.class);
-		if (userApps == null) {
-			EntityManager em = ResteasyProviderFactory.getContextData(EntityManager.class);
-
-			// Theorically this shouldn't be never null, but just in case...
-			User user = em.find(User.class, username);
-			if (user != null) {
-				userApps = user.getAllAppsIds();
-				// We store user orgs in cache only for one hour
-				cache.set("apps_" + username, userApps, 3600);
-			}
-		}
-
-		return userApps;
 	}
 
 	private int getUserRoles(String username) {
-		if (username == null) {
-			return 0;
-		}
-		Integer userRoles = cache.get("roles_" + username, Integer.class);
-		if (userRoles == null) {
-			EntityManager em = ResteasyProviderFactory.getContextData(EntityManager.class);
+		if (username == null) return 0;
+		Integer cached = cache.get("roles_" + username, Integer.class);
+		if (cached != null) return cached;
 
-			User user = em.find(User.class, username);
-			if (user != null) {
-				userRoles = 0;
-				List<Integer> roles = user.getRoles();
-				if (roles != null) {
-					for (Integer rol : roles) {
-						userRoles += rol;
-					}
-				}
-				// We store user roles in cache only for one hour
-				cache.set("roles_" + username, userRoles, 3600);
-				cache.set("orgs_" + username, user.getOrgsIds(), 3600);
-			}
+		EntityManager em = emProvider.getEntityManager();
+		User user = em.find(User.class, username);
+		int roles = 0;
+		if (user != null) {
+			List<Integer> r = user.getRoles();
+			if (r != null) for (Integer role : r) roles += role;
+			cache.set("roles_" + username, roles, 3600);
+			cache.set("orgs_" + username, user.getOrgsIds(), 3600);
 		}
-		return userRoles == null ? 0 : userRoles.intValue();
+		return roles;
 	}
 
-	// @Override
-	public ServerResponse preProcess(HttpRequest request, ResourceMethodInvoker method) throws Failure, WebApplicationException {
-		return null;
+	private Set<Integer> getUserOrganizations(String username) {
+		Set<Integer> cached = cache.get("orgs_" + username, Set.class);
+		if (cached != null) return cached;
+		User user = emProvider.getEntityManager().find(User.class, username);
+		if (user != null) {
+			Set<Integer> result = user.getAllOrgsIds();
+			cache.set("orgs_" + username, result, 3600);
+			return result;
+		}
+		return Set.of();
+	}
+
+	private Set<Integer> getUserApplications(String username) {
+		Set<Integer> cached = cache.get("apps_" + username, Set.class);
+		if (cached != null) return cached;
+		User user = emProvider.getEntityManager().find(User.class, username);
+		if (user != null) {
+			Set<Integer> result = user.getAllAppsIds();
+			cache.set("apps_" + username, result, 3600);
+			return result;
+		}
+		return Set.of();
 	}
 
 	@Override
 	public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
 		context.proceed();
-		EntityManager em = ResteasyProviderFactory.getContextData(EntityManager.class);
+
+		EntityManager em = (EntityManager) context.getProperty(EM_CONTEXT_PROPERTY);
+		if (em == null) return;
+
 		try {
-			if (em != null && em.getTransaction().isActive()) {
+			if (em.getTransaction().isActive()) {
 				if (servletResponse.getStatus() == Status.OK.getStatusCode()) {
 					em.getTransaction().commit();
-					LOG.debug("COMMIT");
+					LOG.debug("Transaction committed");
 				} else {
-					// This code is never executed if there is an error the
-					// filter chain is broken
 					em.getTransaction().rollback();
-					LOG.debug("ROLLBACK");
+					LOG.debug("Transaction rolled back");
 				}
 			}
 		} finally {
 			if (em.isOpen()) {
-				LOG.debug("CLOSING EM: {}, trans: {}", em, em.isJoinedToTransaction());
 				try {
 					em.close();
-				} catch (Exception ex) {
-					ex.printStackTrace();
-					LOG.error("Error closing EM: {}, {}", em, ex);
+				} catch (Exception e) {
+					LOG.error("Error closing EntityManager", e);
 				}
 			}
 		}
 	}
-
 }
diff --git a/securis/src/main/java/net/curisit/securis/ioc/SecurisModule.java b/securis/src/main/java/net/curisit/securis/ioc/SecurisModule.java
index 8b0b6c8..8cdfa22 100644
--- a/securis/src/main/java/net/curisit/securis/ioc/SecurisModule.java
+++ b/securis/src/main/java/net/curisit/securis/ioc/SecurisModule.java
@@ -7,10 +7,10 @@
 import java.util.List;
 import java.util.Properties;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriBuilderException;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Named;
+import jakarta.ws.rs.core.UriBuilder;
+import jakarta.ws.rs.core.UriBuilderException;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/security/BasicSecurityContext.java b/securis/src/main/java/net/curisit/securis/security/BasicSecurityContext.java
index dc0f40b..1c831b5 100644
--- a/securis/src/main/java/net/curisit/securis/security/BasicSecurityContext.java
+++ b/securis/src/main/java/net/curisit/securis/security/BasicSecurityContext.java
@@ -4,7 +4,7 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.ws.rs.core.SecurityContext;
+import jakarta.ws.rs.core.SecurityContext;
 
 import net.curisit.integrity.commons.Utils;
 import net.curisit.securis.db.User;
diff --git a/securis/src/main/java/net/curisit/securis/services/ApiResource.java b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
index cd7d688..2718e51 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApiResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApiResource.java
@@ -4,20 +4,20 @@
 import java.util.Date;
 import java.util.List;
 
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.NoResultException;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
 
-import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.time.DateUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
diff --git a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
index 15e473f..e9b2776 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
@@ -6,24 +6,24 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.annotation.security.RolesAllowed;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.annotation.security.RolesAllowed;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/BasicServices.java b/securis/src/main/java/net/curisit/securis/services/BasicServices.java
index 11fa986..f025795 100644
--- a/securis/src/main/java/net/curisit/securis/services/BasicServices.java
+++ b/securis/src/main/java/net/curisit/securis/services/BasicServices.java
@@ -5,22 +5,22 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriBuilder;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriBuilder;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
index 1027ee7..ed337ce 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseResource.java
@@ -6,24 +6,24 @@
 import java.util.Date;
 import java.util.List;
 
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.DefaultValue;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.ObjectUtils;
diff --git a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
index 21a819a..28b5c7d 100644
--- a/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/LicenseTypeResource.java
@@ -6,24 +6,24 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import javax.annotation.security.RolesAllowed;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.annotation.security.RolesAllowed;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
index 346c726..ee23619 100644
--- a/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/OrganizationResource.java
@@ -5,24 +5,24 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.annotation.security.RolesAllowed;
-import javax.enterprise.context.RequestScoped;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.annotation.security.RolesAllowed;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/PackResource.java b/securis/src/main/java/net/curisit/securis/services/PackResource.java
index dcdf6e6..4623314 100644
--- a/securis/src/main/java/net/curisit/securis/services/PackResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/PackResource.java
@@ -7,25 +7,25 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.annotation.security.RolesAllowed;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.annotation.security.RolesAllowed;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/UserResource.java b/securis/src/main/java/net/curisit/securis/services/UserResource.java
index 3ca37e0..d5a9690 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -5,28 +5,28 @@
 import java.util.List;
 import java.util.Set;
 
-import javax.annotation.security.RolesAllowed;
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceException;
-import javax.persistence.TypedQuery;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.annotation.security.RolesAllowed;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceException;
+import jakarta.persistence.TypedQuery;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java b/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
index 142a747..7159ddc 100644
--- a/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
+++ b/securis/src/main/java/net/curisit/securis/services/helpers/LicenseHelper.java
@@ -9,10 +9,10 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.logging.log4j.LogManager;
diff --git a/securis/src/main/java/net/curisit/securis/services/helpers/MetadataHelper.java b/securis/src/main/java/net/curisit/securis/services/helpers/MetadataHelper.java
index ce6fb45..ac70711 100644
--- a/securis/src/main/java/net/curisit/securis/services/helpers/MetadataHelper.java
+++ b/securis/src/main/java/net/curisit/securis/services/helpers/MetadataHelper.java
@@ -7,9 +7,9 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/services/helpers/UserHelper.java b/securis/src/main/java/net/curisit/securis/services/helpers/UserHelper.java
index 9c8d00d..4c561dc 100644
--- a/securis/src/main/java/net/curisit/securis/services/helpers/UserHelper.java
+++ b/securis/src/main/java/net/curisit/securis/services/helpers/UserHelper.java
@@ -1,8 +1,8 @@
 package net.curisit.securis.services.helpers;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.persistence.EntityManager;
-import javax.ws.rs.core.Response.Status;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.persistence.EntityManager;
+import jakarta.ws.rs.core.Response.Status;
 
 import net.curisit.securis.db.User;
 import net.curisit.securis.security.BasicSecurityContext;
diff --git a/securis/src/main/java/net/curisit/securis/utils/CacheTTL.java b/securis/src/main/java/net/curisit/securis/utils/CacheTTL.java
index f627602..2b0146a 100644
--- a/securis/src/main/java/net/curisit/securis/utils/CacheTTL.java
+++ b/securis/src/main/java/net/curisit/securis/utils/CacheTTL.java
@@ -6,8 +6,8 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/securis/src/main/java/net/curisit/securis/utils/EmailManager.java b/securis/src/main/java/net/curisit/securis/utils/EmailManager.java
index 1d8641e..5b3ad1f 100644
--- a/securis/src/main/java/net/curisit/securis/utils/EmailManager.java
+++ b/securis/src/main/java/net/curisit/securis/utils/EmailManager.java
@@ -14,7 +14,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
 
 import net.curisit.securis.SeCurisException;
 import net.curisit.securis.services.exception.SeCurisServiceException;
diff --git a/securis/src/main/java/net/curisit/securis/utils/GZipServletResponseWrapper.java b/securis/src/main/java/net/curisit/securis/utils/GZipServletResponseWrapper.java
index 11fc895..82ba7f6 100644
--- a/securis/src/main/java/net/curisit/securis/utils/GZipServletResponseWrapper.java
+++ b/securis/src/main/java/net/curisit/securis/utils/GZipServletResponseWrapper.java
@@ -5,10 +5,10 @@
 import java.io.PrintWriter;
 import java.util.zip.GZIPOutputStream;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.WriteListener;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.WriteListener;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponseWrapper;
 
 public class GZipServletResponseWrapper extends HttpServletResponseWrapper {
 
diff --git a/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java b/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
index b6eb249..ff567f7 100644
--- a/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
+++ b/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
@@ -7,8 +7,8 @@
 import java.security.NoSuchAlgorithmException;
 import java.util.Date;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
 
 import net.curisit.integrity.commons.Utils;
 import net.curisit.securis.services.ApiResource;
@@ -16,7 +16,9 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.jboss.resteasy.util.Base64;
+
+import java.util.Base64;
+import java.nio.charset.StandardCharsets;
 
 @ApplicationScoped
 public class TokenHelper {
@@ -47,16 +49,21 @@
         return generateToken(user, new Date());
     }
 
+    ;
+
     public String generateToken(String user, Date date) {
         try {
             String secret = generateSecret(user, date);
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append(secret);
             sb.append(' ');
             sb.append(user);
             sb.append(' ');
             sb.append(Utils.toIsoFormat(date));
-            return Base64.encodeBytes(sb.toString().getBytes("utf-8"));
+
+            // Codificación estándar con UTF-8
+            return Base64.getEncoder().encodeToString(sb.toString().getBytes(StandardCharsets.UTF_8));
+
         } catch (NoSuchAlgorithmException e) {
             LOG.error("Error generating SHA-256 hash", e);
         } catch (UnsupportedEncodingException e) {
@@ -86,7 +93,7 @@
      */
     public boolean isTokenValid(String token) {
         try {
-            String tokenDecoded = new String(Base64.decode(token));
+        	String tokenDecoded = new String(Base64.getDecoder().decode(token), StandardCharsets.UTF_8);
             String[] parts = StringUtils.split(tokenDecoded, ' ');
             if (parts == null || parts.length < 3) {
                 return false;
@@ -114,14 +121,14 @@
             if (token == null) {
                 return null;
             }
-            String tokenDecoded = new String(Base64.decode(token));
+            String tokenDecoded = new String(Base64.getDecoder().decode(token), StandardCharsets.UTF_8);
             String[] parts = StringUtils.split(tokenDecoded, ' ');
             if (parts == null || parts.length < 3) {
                 return null;
             }
             String user = parts[1];
             return user;
-        } catch (IOException e) {
+        } catch (Exception e) {
             LOG.error("Error decoding Base64 token", e);
         }
         return null;
@@ -129,14 +136,14 @@
 
     public Date extractDateCreationFromToken(String token) {
         try {
-            String tokenDecoded = new String(Base64.decode(token));
+            String tokenDecoded = new String(Base64.getDecoder().decode(token), StandardCharsets.UTF_8);
             String[] parts = StringUtils.split(tokenDecoded, ' ');
             if (parts == null || parts.length < 3) {
                 return null;
             }
             Date date = Utils.toDateFromIso(parts[2]);
             return date;
-        } catch (IOException e) {
+        } catch (Exception e) {
             LOG.error("Error decoding Base64 token", e);
         }
         return null;
@@ -148,7 +155,7 @@
         // OTk3ODRiMzY5NzQ5MWI5NmYyZGQyODRiYjY2ZTU2YzdmMTZjYzM3YTY3N2ExM2M3ODI2MjU5ZTMzOTIyYjUzNSBfY2xpZW50IDE5NzAtMDEtMDFUMDA6NTk6NTkuOTk5KzAxMDA=
         String t = new TokenHelper().generateToken("_client", new Date(-1));
         System.out.println("client token: " + t);
-        System.out.println("client token: " + new String(Base64.decode(t)));
+        System.out.println("client token: " + new String(Base64.getDecoder().decode(t), StandardCharsets.UTF_8));
 
         System.out.println("is valid client token: " + new TokenHelper().isTokenValid(t));
     }
diff --git a/securis/src/main/resources/db/create_db.sql b/securis/src/main/resources/db/create_db.sql
deleted file mode 100644
index 00aa749..0000000
--- a/securis/src/main/resources/db/create_db.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-create database securis CHARACTER SET utf8 COLLATE utf8_bin;
-create user securis@localhost identified by 'securis';
-grant all on securis.* to securis@localhost;
-#Update passwords
-flush privileges;
\ No newline at end of file
diff --git a/securis/src/main/resources/db/initial_data.sql b/securis/src/main/resources/db/initial_data.sql
deleted file mode 100644
index 46ca982..0000000
--- a/securis/src/main/resources/db/initial_data.sql
+++ /dev/null
@@ -1,5 +0,0 @@
-delete from user;
-
-#Password: securis
-insert into user (username, password, roles, first_name, last_name, creation_timestamp) values ('admin', '64f170fd736a2d4658fa87abde12043009d2554636c397032d57d71aea8556e9', 2, 'Administrator', null, now());
-insert into user (username, password, roles, first_name, last_name, creation_timestamp) values ('_client', '64f170fd736a2d4658fa87abde12043009d2554636c397032d57d71aea8556e9', 128, 'SeCuris client user', null, now());
\ No newline at end of file
diff --git a/securis/src/main/resources/db/schema.sql b/securis/src/main/resources/db/schema.sql
deleted file mode 100644
index 926365f..0000000
--- a/securis/src/main/resources/db/schema.sql
+++ /dev/null
@@ -1,155 +0,0 @@
-
-drop table IF EXISTS settings;
-CREATE  TABLE IF NOT EXISTS settings (
-  `key` VARCHAR(100) NOT NULL ,
-  value VARCHAR(2000) NULL ,
-  modification_timestamp TIMESTAMP NOT NULL default now(),  
-  PRIMARY KEY (``key``) );
- 
-drop table IF EXISTS user;
-CREATE  TABLE IF NOT EXISTS user (
-  username VARCHAR(45) NOT NULL ,
-  password VARCHAR(256) NULL ,
-  roles INT NOT NULL default 0,
-  first_name VARCHAR(100) NULL ,
-  last_name VARCHAR(100) NULL ,
-  last_login TIMESTAMP NULL ,
-  lang VARCHAR(10) NULL ,
-  email VARCHAR(150) NULL ,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  modification_timestamp TIMESTAMP NULL ,  
-  PRIMARY KEY (username));
-
-drop table IF EXISTS application;
-CREATE TABLE IF NOT EXISTS application (
-  id INT NOT NULL auto_increment,
-  code VARCHAR(4) NOT NULL ,
-  name VARCHAR(45) NOT NULL ,
-  license_filename VARCHAR(100) NOT NULL ,
-  description VARCHAR(500) NULL ,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  PRIMARY KEY (id));
-
-drop table IF EXISTS application_metadata;
-CREATE TABLE IF NOT EXISTS application_metadata (
-  application_id INT NOT NULL ,
-  `key` VARCHAR(100) NOT NULL ,
-  value VARCHAR(512) NULL ,
-  mandatory BOOLEAN NOT NULL default true,
-  creation_timestamp TIMESTAMP NULL default now(),  
-  PRIMARY KEY (application_id, `key`));
-
-
-drop table IF EXISTS license_type;
-CREATE  TABLE IF NOT EXISTS license_type (
-  id INT NOT NULL auto_increment,
-  code VARCHAR(10) NOT NULL ,
-  name VARCHAR(45) NOT NULL ,
-  description VARCHAR(100) NULL ,
-  application_id INT NULL ,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  PRIMARY KEY (id));
-
-drop table IF EXISTS licensetype_metadata;
-CREATE TABLE IF NOT EXISTS licensetype_metadata (
-  license_type_id INT NOT NULL ,
-  `key` VARCHAR(100) NOT NULL ,
-  value VARCHAR(512) NULL ,
-  mandatory BOOLEAN NOT NULL default true,
-  PRIMARY KEY (license_type_id, `key`));
-
-drop table IF EXISTS organization;
-CREATE  TABLE IF NOT EXISTS organization (
-  id INT NOT NULL auto_increment,
-  code VARCHAR(10) NOT NULL ,
-  name VARCHAR(45) NOT NULL ,
-  description VARCHAR(100) NULL ,
-  org_parent_id INT NULL ,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  PRIMARY KEY (id));
-  
-drop table IF EXISTS user_organization;
-CREATE  TABLE IF NOT EXISTS user_organization (
-  username VARCHAR(45) NOT NULL,
-  organization_id INT NOT NULL,  
-  PRIMARY KEY (username, organization_id));
-
-drop table IF EXISTS user_application;
-CREATE  TABLE IF NOT EXISTS user_application (
-  username VARCHAR(45) NOT NULL,
-  application_id INT NOT NULL,  
-  PRIMARY KEY (username, application_id));
-
-  
-drop table IF EXISTS pack;
-CREATE  TABLE IF NOT EXISTS pack (
-  id INT NOT NULL auto_increment,
-  code VARCHAR(50) NOT NULL ,
-  num_licenses INT NOT NULL ,
-  init_valid_date DATE NOT NULL,
-  end_valid_date DATE NOT NULL,
-  status VARCHAR(2) NOT NULL default 'CR',
-  comments VARCHAR(1024) NULL ,
-  license_type_id INT NOT NULL,  
-  organization_id INT NOT NULL,  
-  license_preactivation BOOLEAN NOT NULL DEFAULT true,  
-  preactivation_valid_period INT NOT NULL DEFAULT 7,  
-  renew_valid_period INT NOT NULL DEFAULT 30,  
-  created_by varchar(45) NULL ,  
-  creation_timestamp TIMESTAMP NOT NULL default now(),
-  frozen BOOLEAN NOT NULL default false,
-  PRIMARY KEY (id));
-  
-drop table IF EXISTS pack_metadata;
-CREATE TABLE IF NOT EXISTS pack_metadata (
-  pack_id INT NOT NULL ,
-  `key` VARCHAR(100) NOT NULL ,
-  value VARCHAR(512) NULL ,
-  readonly BOOlEAN NOT NULL default false,
-  mandatory BOOLEAN NOT NULL default true,
-  PRIMARY KEY (pack_id, `key`));
-  
-  
-drop table IF EXISTS license;
-CREATE TABLE IF NOT EXISTS license (
-  id INT NOT NULL auto_increment,
-  code VARCHAR(100) NOT NULL ,
-  activation_code VARCHAR(100) NULL ,
-  code_suffix INT NULL ,
-  request_data VARCHAR(1024) NULL ,
-  request_data_hash VARCHAR(64) NULL ,
-  license_data VARCHAR(2048) NULL ,
-  pack_id INT NOT NULL,  
-  full_name VARCHAR(150) NULL,  
-  email VARCHAR(100) NULL,  
-  comments VARCHAR(1024) NULL ,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  modification_timestamp TIMESTAMP NULL ,  
-  last_access_timestamp TIMESTAMP NULL ,  
-  expiration_date TIMESTAMP NULL ,  
-  cancelled_by varchar(45) NULL ,  
-  created_by varchar(45) NULL ,  
-  status VARCHAR(2) NOT NULL default 'CR',  
-  metadata_obsolete BOOLEAN NOT NULL default false,
-  PRIMARY KEY (id),
-  index(request_data_hash, pack_id));
-  
-drop table IF EXISTS license_history;
-CREATE TABLE IF NOT EXISTS license_history (
-  id INT NOT NULL auto_increment,
-  license_id INT NOT NULL,
-  username VARCHAR(45) NOT NULL,
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  action VARCHAR(40) , 
-  comments VARCHAR(512) ,
-  PRIMARY KEY (id));
-  
-   
-drop table IF EXISTS blocked_request;
-CREATE TABLE IF NOT EXISTS blocked_request (
-  hash VARCHAR(64) NOT NULL ,
-  request_data VARCHAR(1024) NULL ,
-  blocked_by varchar(45) NULL ,  
-  creation_timestamp TIMESTAMP NOT NULL default now(),  
-  PRIMARY KEY (hash));
-   
\ No newline at end of file
diff --git a/securis/src/main/webapp/.vscode/settings.json b/securis/src/main/webapp/.vscode/settings.json
index e7c0a2c..1627953 100644
--- a/securis/src/main/webapp/.vscode/settings.json
+++ b/securis/src/main/webapp/.vscode/settings.json
@@ -1,4 +1,3 @@
-// Place your settings in this file to overwrite default and user settings.
 {
    "typescript.tsdk": "./node_modules/typescript/lib",
    "files.exclude": {
diff --git a/securis/src/main/webapp/META-INF/MANIFEST.MF b/securis/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/securis/src/main/webapp/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+
diff --git a/securis/src/main/webapp/WEB-INF/web.xml b/securis/src/main/webapp/WEB-INF/web.xml
index 9e90a78..4f34c69 100644
--- a/securis/src/main/webapp/WEB-INF/web.xml
+++ b/securis/src/main/webapp/WEB-INF/web.xml
@@ -66,7 +66,7 @@
 	<filter>
         <filter-name>Resteasy</filter-name>
         <filter-class>
-            org.jboss.resteasy.plugins.server.servlet.FilterDispatcher
+            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
         </filter-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
diff --git a/securis/src/main/webapp/src/lang/messages_es.json b/securis/src/main/webapp/src/lang/messages_es.json
index 413715e..6b645c5 100644
--- a/securis/src/main/webapp/src/lang/messages_es.json
+++ b/securis/src/main/webapp/src/lang/messages_es.json
@@ -1,4 +1,65 @@
 {
-"": "",
-"": ""
+	"field.code": "Code",
+	"field.num_licenses": "Num. licenses",
+	"field.num_available": "Available licenses",
+	"field.pack": "Pack",
+	"field.id": "ID",
+	"field.init_valid_date": "Init valid date",
+	"field.end_valid_date": "End valid date",
+	"field.license_preactivation": "License preactivation",
+	"field.license_type_id": "License type",
+	"field.organization_id": "Organization",
+	"field.application_id": "Application",
+	"field.licensetype_code": "License type",
+	"field.organization_name": "Organization",
+	"field.preactivation_valid_period": "Preactivation valid period",
+	"field.renew_valid_period": "Renew valid period",
+	"field.application_name": "Application name",
+	"field.activation_code": "Activation code",
+	"field.status": "Status",
+	"field.metadata": "Metadata",
+	"field.key": "Parameter",
+	"field.value": "Value",
+	"field.username": "Username",
+	"field.password": "Password",
+	"field.first_name": "Firstname",
+	"field.last_name": "Lastname",
+	"field.created_by": "Created by",
+	"field.creation_date": "Creation date",
+	"field.expiration_date": "Expiration date",
+	"field.request_data": "Request data",
+	"field.full_name": "Fullname",
+	"field.email": "Email",
+	"field.lastLogin": "Last login",
+	"field.creation_timestamp": "Creation timestamp",
+	"field.comments": "Comments",
+	"field.mandatory": "Required",
+	"field.org_parent_id": "Parent organization",
+	"field.name": "Name",
+	"field.frozen": "Frozen",
+	"field.license_filename": "License filename",
+	"field.description": "Description",
+	"pack.status.CR": "Created",
+	"pack.status.AC": "Active",
+	"pack.status.OH": "On Hold",
+	"pack.status.EX": "Expired",
+	"pack.status.CA": "Cancelled",
+	"license.status.CR": "Created",
+	"license.status.AC": "Active",
+	"license.status.PA": "Pre-active",
+	"license.status.RE": "Requested",
+	"license.status.EX": "Expired",
+	"license.status.BL": "Blocked",
+	"license.status.CA": "Cancelled",
+	"menu.packs": "Packs",
+	"menu.packs.description": "Packs to manage licenses",
+	"menu.applications": "Applications",
+	"menu.applications.description": "Applications",
+	"menu.license_types": "License types",
+	"menu.license_types.description": "License types",
+	"menu.organizations": "Organizations",
+	"menu.organizations.description": "Organizations",
+	"menu.users": "Users",
+	"menu.users.description": "Users",
+	"": ""
 }
\ No newline at end of file
diff --git a/securis/src/main/webapp/src/lang/messages_fr.json b/securis/src/main/webapp/src/lang/messages_fr.json
index 413715e..6b645c5 100644
--- a/securis/src/main/webapp/src/lang/messages_fr.json
+++ b/securis/src/main/webapp/src/lang/messages_fr.json
@@ -1,4 +1,65 @@
 {
-"": "",
-"": ""
+	"field.code": "Code",
+	"field.num_licenses": "Num. licenses",
+	"field.num_available": "Available licenses",
+	"field.pack": "Pack",
+	"field.id": "ID",
+	"field.init_valid_date": "Init valid date",
+	"field.end_valid_date": "End valid date",
+	"field.license_preactivation": "License preactivation",
+	"field.license_type_id": "License type",
+	"field.organization_id": "Organization",
+	"field.application_id": "Application",
+	"field.licensetype_code": "License type",
+	"field.organization_name": "Organization",
+	"field.preactivation_valid_period": "Preactivation valid period",
+	"field.renew_valid_period": "Renew valid period",
+	"field.application_name": "Application name",
+	"field.activation_code": "Activation code",
+	"field.status": "Status",
+	"field.metadata": "Metadata",
+	"field.key": "Parameter",
+	"field.value": "Value",
+	"field.username": "Username",
+	"field.password": "Password",
+	"field.first_name": "Firstname",
+	"field.last_name": "Lastname",
+	"field.created_by": "Created by",
+	"field.creation_date": "Creation date",
+	"field.expiration_date": "Expiration date",
+	"field.request_data": "Request data",
+	"field.full_name": "Fullname",
+	"field.email": "Email",
+	"field.lastLogin": "Last login",
+	"field.creation_timestamp": "Creation timestamp",
+	"field.comments": "Comments",
+	"field.mandatory": "Required",
+	"field.org_parent_id": "Parent organization",
+	"field.name": "Name",
+	"field.frozen": "Frozen",
+	"field.license_filename": "License filename",
+	"field.description": "Description",
+	"pack.status.CR": "Created",
+	"pack.status.AC": "Active",
+	"pack.status.OH": "On Hold",
+	"pack.status.EX": "Expired",
+	"pack.status.CA": "Cancelled",
+	"license.status.CR": "Created",
+	"license.status.AC": "Active",
+	"license.status.PA": "Pre-active",
+	"license.status.RE": "Requested",
+	"license.status.EX": "Expired",
+	"license.status.BL": "Blocked",
+	"license.status.CA": "Cancelled",
+	"menu.packs": "Packs",
+	"menu.packs.description": "Packs to manage licenses",
+	"menu.applications": "Applications",
+	"menu.applications.description": "Applications",
+	"menu.license_types": "License types",
+	"menu.license_types.description": "License types",
+	"menu.organizations": "Organizations",
+	"menu.organizations.description": "Organizations",
+	"menu.users": "Users",
+	"menu.users.description": "Users",
+	"": ""
 }
\ No newline at end of file

--
Gitblit v1.3.2