From 25c4b677de0b1c74abf66edec0a78cfb98db7e98 Mon Sep 17 00:00:00 2001
From: Manish Kumar <110275771+code4uuuu@users.noreply.github.com>
Date: Mon, 15 Jul 2024 21:29:09 +0530
Subject: [PATCH] [PRODSEC-9364] added java-uuid-generator (#2778)
* [PRODSEC-9364] added java-uuid-generator
* [PRODSEC-9364] addressed formatting issues
* [PRODSEC-9364] removed unnecessary qualifier java.util
* [PRODSEC-9364] removed addition import and change year in header
---
core/pom.xml | 8 +--
.../src/main/java/org/alfresco/util/GUID.java | 4 +-
.../InMemoryTicketComponentImpl.java | 4 +-
mmt/pom.xml | 2 +-
.../module/tool/ModuleManagementTool.java | 4 +-
.../quickshare/QuickShareServiceImpl.java | 11 ++--
.../SplitPersonCleanupBootstrapBean.java | 56 +++++++++----------
.../QuickShareServiceIntegrationTest.java | 11 ++--
8 files changed, 51 insertions(+), 49 deletions(-)
diff --git a/core/pom.xml b/core/pom.xml
index 7c20f988b3..f4cb07f3ac 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -47,11 +47,11 @@
commons-math3
3.6.1
+
- org.safehaus.jug
- jug
- 2.0.0
- asl
+ com.fasterxml.uuid
+ java-uuid-generator
+ 5.1.0
org.apache.logging.log4j
diff --git a/core/src/main/java/org/alfresco/util/GUID.java b/core/src/main/java/org/alfresco/util/GUID.java
index 227e928a5e..2e65c3975f 100644
--- a/core/src/main/java/org/alfresco/util/GUID.java
+++ b/core/src/main/java/org/alfresco/util/GUID.java
@@ -21,7 +21,7 @@ package org.alfresco.util;
import java.security.SecureRandom;
import java.util.Random;
-import org.safehaus.uuid.UUIDGenerator;
+import com.fasterxml.uuid.Generators;
import org.alfresco.api.AlfrescoPublicApi;
/**
@@ -69,7 +69,7 @@ public final class GUID
public static String generate()
{
int randomInt = RANDOM.nextInt(SECURE_RANDOM_POOL_MAX_ITEMS);
- return UUIDGenerator.getInstance().generateRandomBasedUUID(SECURE_RANDOM_POOL[randomInt]).toString();
+ return Generators.randomBasedGenerator(SECURE_RANDOM_POOL[randomInt]).generate().toString();
}
// == Not sure if we need this functionality again (derekh) ==
diff --git a/data-model/src/main/java/org/alfresco/repo/security/authentication/InMemoryTicketComponentImpl.java b/data-model/src/main/java/org/alfresco/repo/security/authentication/InMemoryTicketComponentImpl.java
index 4d37e707ef..7ee39afe3d 100644
--- a/data-model/src/main/java/org/alfresco/repo/security/authentication/InMemoryTicketComponentImpl.java
+++ b/data-model/src/main/java/org/alfresco/repo/security/authentication/InMemoryTicketComponentImpl.java
@@ -33,13 +33,13 @@ import java.util.HashSet;
import java.util.Set;
import java.util.zip.CRC32;
+import com.fasterxml.uuid.Generators;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.service.cmr.repository.datatype.Duration;
import org.alfresco.util.GUID;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.safehaus.uuid.UUIDGenerator;
import org.alfresco.util.ParameterCheck;
/**
@@ -497,7 +497,7 @@ public class InMemoryTicketComponentImpl implements TicketComponent
this.userName = userName;
this.validDuration = validDuration;
this.testDuration = validDuration.divide(2);
- final String guid = UUIDGenerator.getInstance().generateRandomBasedUUID().toString();
+ final String guid = Generators.randomBasedGenerator().generate().toString();
this.ticketId = computeTicketId(expires, expiryDate, userName, guid);
diff --git a/mmt/pom.xml b/mmt/pom.xml
index c58b0d0b54..61182f191f 100644
--- a/mmt/pom.xml
+++ b/mmt/pom.xml
@@ -84,7 +84,7 @@
org.alfresco:alfresco-core
org.alfresco:alfresco-repository
org.apache.commons:commons-compress
- org.safehaus.jug:jug
+ com.fasterxml.uuid:java-uuid-generator
org.alfresco.surf:spring-surf-core
org.tukaani:xz
org.apache.maven:maven-artifact
diff --git a/mmt/src/main/java/org/alfresco/repo/module/tool/ModuleManagementTool.java b/mmt/src/main/java/org/alfresco/repo/module/tool/ModuleManagementTool.java
index a8f7f57dd2..631fe810a6 100644
--- a/mmt/src/main/java/org/alfresco/repo/module/tool/ModuleManagementTool.java
+++ b/mmt/src/main/java/org/alfresco/repo/module/tool/ModuleManagementTool.java
@@ -25,6 +25,7 @@
*/
package org.alfresco.repo.module.tool;
+import com.fasterxml.uuid.Generators;
import de.schlichtherle.truezip.file.*;
import de.schlichtherle.truezip.fs.FsSyncException;
import de.schlichtherle.truezip.fs.archive.zip.JarDriver;
@@ -34,7 +35,6 @@ import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.module.ModuleVersionNumber;
import org.alfresco.service.cmr.module.ModuleDetails;
import org.alfresco.service.cmr.module.ModuleInstallState;
-import org.safehaus.uuid.UUIDGenerator;
import java.io.BufferedInputStream;
import java.io.IOException;
@@ -916,7 +916,7 @@ public class ModuleManagementTool implements LogOutput
*/
private static String generateGuid()
{
- return UUIDGenerator.getInstance().generateTimeBasedUUID().toString();
+ return Generators.timeBasedGenerator().generate().toString();
}
/**
diff --git a/repository/src/main/java/org/alfresco/repo/quickshare/QuickShareServiceImpl.java b/repository/src/main/java/org/alfresco/repo/quickshare/QuickShareServiceImpl.java
index 2102a2bf93..9757bc622a 100644
--- a/repository/src/main/java/org/alfresco/repo/quickshare/QuickShareServiceImpl.java
+++ b/repository/src/main/java/org/alfresco/repo/quickshare/QuickShareServiceImpl.java
@@ -36,7 +36,10 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
+import com.fasterxml.uuid.Generators;
+import com.fasterxml.uuid.impl.UUIDUtil;
import org.alfresco.sync.events.types.ActivityEvent;
import org.alfresco.sync.events.types.Event;
import org.alfresco.model.ContentModel;
@@ -108,8 +111,6 @@ import org.apache.commons.logging.LogFactory;
import org.joda.time.DateTime;
import org.joda.time.Interval;
import org.joda.time.PeriodType;
-import org.safehaus.uuid.UUID;
-import org.safehaus.uuid.UUIDGenerator;
/**
* QuickShare Service implementation.
@@ -435,8 +436,8 @@ public class QuickShareServiceImpl implements QuickShareService,
// If it is retura dto built from the existing properties.
if (! nodeService.getAspects(nodeRef).contains(QuickShareModel.ASPECT_QSHARE))
{
- UUID uuid = UUIDGenerator.getInstance().generateRandomBasedUUID();
- sharedId = Base64.encodeBase64URLSafeString(uuid.toByteArray()); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
+ UUID uuid = Generators.randomBasedGenerator().generate();
+ sharedId = Base64.encodeBase64URLSafeString(UUIDUtil.asByteArray(uuid)); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
final Map props = new HashMap(2);
props.put(QuickShareModel.PROP_QSHARE_SHAREDID, sharedId);
@@ -1246,7 +1247,7 @@ public class QuickShareServiceImpl implements QuickShareService,
}
// Create the expiry action
- final QuickShareLinkExpiryAction expiryAction = new QuickShareLinkExpiryActionImpl(java.util.UUID.randomUUID().toString(), sharedId,
+ final QuickShareLinkExpiryAction expiryAction = new QuickShareLinkExpiryActionImpl(UUID.randomUUID().toString(), sharedId,
"QuickShare link expiry action");
// Create the persisted schedule
final ScheduledPersistedAction schedule = scheduledPersistedActionService.createSchedule(expiryAction);
diff --git a/repository/src/main/java/org/alfresco/repo/security/person/SplitPersonCleanupBootstrapBean.java b/repository/src/main/java/org/alfresco/repo/security/person/SplitPersonCleanupBootstrapBean.java
index 777ef52afb..c87679cc2e 100644
--- a/repository/src/main/java/org/alfresco/repo/security/person/SplitPersonCleanupBootstrapBean.java
+++ b/repository/src/main/java/org/alfresco/repo/security/person/SplitPersonCleanupBootstrapBean.java
@@ -1,32 +1,33 @@
-/*
- * #%L
- * Alfresco Repository
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- * #L%
- */
+/*
+ * #%L
+ * Alfresco Repository
+ * %%
+ * Copyright (C) 2005 - 2024 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
package org.alfresco.repo.security.person;
import java.util.Set;
import java.util.TreeSet;
+import java.util.UUID;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.batch.BatchProcessor;
@@ -41,7 +42,6 @@ import org.springframework.extensions.surf.util.AbstractLifecycleBean;
import org.alfresco.util.GUID;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.safehaus.uuid.UUID;
import org.springframework.context.ApplicationEvent;
/**
@@ -168,7 +168,7 @@ public class SplitPersonCleanupBootstrapBean extends AbstractLifecycleBean
try
{
@SuppressWarnings("unused")
- UUID id = new UUID(guidString);
+ UUID id = UUID.fromString(guidString);
// We have a valid guid.
return true;
}
@@ -188,7 +188,7 @@ public class SplitPersonCleanupBootstrapBean extends AbstractLifecycleBean
try
{
@SuppressWarnings("unused")
- UUID id = new UUID(guidString);
+ UUID id = UUID.fromString(guidString);
// We have a valid guid.
return true;
}
diff --git a/repository/src/test/java/org/alfresco/repo/quickshare/QuickShareServiceIntegrationTest.java b/repository/src/test/java/org/alfresco/repo/quickshare/QuickShareServiceIntegrationTest.java
index 1c50d23fd6..fbba0bdba2 100644
--- a/repository/src/test/java/org/alfresco/repo/quickshare/QuickShareServiceIntegrationTest.java
+++ b/repository/src/test/java/org/alfresco/repo/quickshare/QuickShareServiceIntegrationTest.java
@@ -37,7 +37,10 @@ import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
+import java.util.UUID;
+import com.fasterxml.uuid.Generators;
+import com.fasterxml.uuid.impl.UUIDUtil;
import org.alfresco.model.ContentModel;
import org.alfresco.model.QuickShareModel;
import org.alfresco.repo.model.Repository;
@@ -83,8 +86,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.rules.RuleChain;
-import org.safehaus.uuid.UUID;
-import org.safehaus.uuid.UUIDGenerator;
import org.springframework.context.ApplicationContext;
/**
@@ -420,8 +421,8 @@ public class QuickShareServiceIntegrationTest
@Test(expected=InvalidSharedIdException.class) public void getMetadataFromShareIdWithInvalidId()
{
- UUID uuid = UUIDGenerator.getInstance().generateRandomBasedUUID();
- String sharedId = Base64.encodeBase64URLSafeString(uuid.toByteArray()); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
+ UUID uuid = Generators.randomBasedGenerator().generate();
+ String sharedId = Base64.encodeBase64URLSafeString(UUIDUtil.asByteArray(uuid)); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
Map metadata = quickShareService.getMetaData(sharedId);
}
@@ -884,7 +885,7 @@ public class QuickShareServiceIntegrationTest
{
// Create a private site
AuthenticationUtil.setFullyAuthenticatedUser(user1.getUsername());
- String randomUUID = UUIDGenerator.getInstance().generateRandomBasedUUID().toString();
+ String randomUUID = Generators.randomBasedGenerator().generate().toString();
String siteName = "testSite" + randomUUID;
siteService.createSite("site-dashboard", siteName, "Title for " + siteName,
"Description for " + siteName, SiteVisibility.PRIVATE);