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/utils/TokenHelper.java |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 deletions(-)

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

--
Gitblit v1.3.2