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