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;


Reply via email to