You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by as...@apache.org on 2016/03/07 13:40:19 UTC

svn commit: r1733918 - in /sling/trunk/launchpad/base/src: main/java/org/apache/sling/launchpad/app/ControlListener.java test/java/org/apache/sling/launchpad/app/ControlListenerTest.java

Author: asanso
Date: Mon Mar  7 12:40:19 2016
New Revision: 1733918

URL: http://svn.apache.org/viewvc?rev=1733918&view=rev
Log:
SLING-5587 - Improve ControlListener#generateKey

Modified:
    sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java
    sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/app/ControlListenerTest.java

Modified: sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java?rev=1733918&r1=1733917&r2=1733918&view=diff
==============================================================================
--- sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java (original)
+++ sling/trunk/launchpad/base/src/main/java/org/apache/sling/launchpad/app/ControlListener.java Mon Mar  7 12:40:19 2016
@@ -32,14 +32,15 @@ import java.lang.management.ManagementFa
 import java.lang.management.MonitorInfo;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
+import java.math.BigInteger;
 import java.net.ConnectException;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Random;
 import java.util.Set;
 
 /**
@@ -565,14 +566,7 @@ class ControlListener implements Runnabl
     }
 
     private static String generateKey() {
-        String keys = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789";
-        int len = keys.length();
-        Random r = new Random(System.currentTimeMillis() + 33 * System.nanoTime());
-        char[] c = new char[32];
-        for (int i = 0; i < c.length; i++) {
-            c[i] = keys.charAt(r.nextInt(len));
-        }
-        return new String(c);
+         return new BigInteger(165, new SecureRandom()).toString(32);
     }
 
     /**

Modified: sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/app/ControlListenerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/app/ControlListenerTest.java?rev=1733918&r1=1733917&r2=1733918&view=diff
==============================================================================
--- sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/app/ControlListenerTest.java (original)
+++ sling/trunk/launchpad/base/src/test/java/org/apache/sling/launchpad/app/ControlListenerTest.java Mon Mar  7 12:40:19 2016
@@ -345,8 +345,7 @@ public class ControlListenerTest extends
         ControlListener cl = new ControlListener(main, null);
         
         String secretkey = (String) PrivateAccessor.invoke(cl, "generateKey", new Class[] {}, new Object[] {});
-        Assert.assertEquals(32, secretkey.length());
-        System.out.println(secretkey);
+        Assert.assertTrue(secretkey.length() >= 32);
         Matcher matcher = pattern.matcher(secretkey);
         if (!matcher.matches()) {
             Assert.fail();