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