Author: pauls Date: Tue Apr 3 13:29:11 2018 New Revision: 1828236 URL: http://svn.apache.org/viewvc?rev=1828236&view=rev Log: FELIX-5816: make random configurable (SecureRandom v.s. normal) for uuid generation.
Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=1828236&r1=1828235&r2=1828236&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java (original) +++ felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/Felix.java Tue Apr 3 13:29:11 2018 @@ -682,7 +682,7 @@ public class Felix extends BundleImpl im // Spec says we get a new UUID for each invocation of init(). m_configMutableMap.put( FelixConstants.FRAMEWORK_UUID, - Util.randomUUID()); + Util.randomUUID("true".equalsIgnoreCase(_getProperty(FelixConstants.FRAMEWORK_UUID_SECURE)))); // Initialize event dispatcher. m_dispatcher.startDispatching(); Modified: felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java?rev=1828236&r1=1828235&r2=1828236&view=diff ============================================================================== --- felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java (original) +++ felix/trunk/osgi-r7/framework/src/main/java/org/apache/felix/framework/util/Util.java Tue Apr 3 13:29:11 2018 @@ -850,11 +850,18 @@ public class Util * * @return an UUID instance. */ - public static String randomUUID() { - byte[] data; - // lock on the class to protect lazy init - SecureRandom rng = new SecureRandom(); - rng.nextBytes(data = new byte[16]); + public static String randomUUID(boolean secure) { + byte[] data = new byte[16]; + if (secure) + { + SecureRandom rng = new SecureRandom(); + rng.nextBytes(data); + } + else + { + Random rng = new Random(); + rng.nextBytes(data); + } long mostSigBits = (data[0] & 0xFFL) << 56; mostSigBits |= (data[1] & 0xFFL) << 48; mostSigBits |= (data[2] & 0xFFL) << 40;