Author: markt
Date: Fri Mar 25 12:20:39 2011
New Revision: 1085346
URL: http://svn.apache.org/viewvc?rev=1085346&view=rev
Log:
Securely seed the SecureRandom instance used for UUID generation and report
excessive creation time (greater than 100ms) at INFO level.
Added:
tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties
(with props)
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java
tomcat/trunk/webapps/docs/changelog.xml
Added: tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties?rev=1085346&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties
(added)
+++ tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties
Fri Mar 25 12:20:39 2011
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+uuidGenerator.createRandom=Creation of SecureRandom instance for UUID
generation using [{0}] took [{1}] milliseconds.
Propchange:
tomcat/trunk/java/org/apache/catalina/tribes/util/LocalStrings.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java?rev=1085346&r1=1085345&r2=1085346&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/util/UUIDGenerator.java Fri
Mar 25 12:20:39 2011
@@ -19,12 +19,19 @@ package org.apache.catalina.tribes.util;
import java.security.SecureRandom;
import java.util.Random;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
/**
* simple generation of a UUID
* @author Filip Hanik
* @version 1.0
*/
public class UUIDGenerator {
+ private static final Log log = LogFactory.getLog(UUIDGenerator.class);
+ protected static final StringManager sm =
+ StringManager.getManager("org.apache.catalina.tribes.util");
+
public static final int UUID_LENGTH = 16;
public static final int UUID_VERSION = 4;
public static final int BYTES_PER_INT = 4;
@@ -32,9 +39,17 @@ public class UUIDGenerator {
protected static SecureRandom secrand = null;
protected static Random rand = new Random();
+
static {
+ long start = System.currentTimeMillis();
secrand = new SecureRandom();
- secrand.setSeed(rand.nextLong());
+ // seed the generator
+ secrand.nextInt();
+ long time = System.currentTimeMillis() - start;
+ if (time > 100) {
+ log.info(sm.getString("uuidGenerator.createRandom",
+ secrand.getAlgorithm(), Long.valueOf(time)));
+ }
}
public static byte[] randomUUID(boolean secure) {
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1085346&r1=1085345&r2=1085346&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Mar 25 12:20:39 2011
@@ -116,6 +116,15 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Cluster">
+ <changelog>
+ <fix>
+ Securely seed the SecureRandom instance used for UUID generation and
+ report excessive creation time (greater than 100ms) at INFO level.
+ (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Web applications">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]