Author: violetagg Date: Wed Sep 17 18:46:38 2014 New Revision: 1625737 URL: http://svn.apache.org/r1625737 Log: Merged revision 1623695 from tomcat/trunk: Switch creation of the SHA-1 digest required to generate a WebSocket upgrade to use the ConcurrentMessageDigest rather than using a dedicated Queue.
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1623695 Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java?rev=1625737&r1=1625736&r2=1625737&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/server/UpgradeUtil.java Wed Sep 17 18:46:38 2014 @@ -18,16 +18,12 @@ package org.apache.tomcat.websocket.serv import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Enumeration; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; import javax.servlet.ServletException; import javax.servlet.ServletRequest; @@ -42,6 +38,7 @@ import javax.websocket.server.ServerEndp import org.apache.catalina.connector.RequestFacade; import org.apache.tomcat.util.codec.binary.Base64; +import org.apache.tomcat.util.security.ConcurrentMessageDigest; import org.apache.tomcat.websocket.Constants; import org.apache.tomcat.websocket.Transformation; import org.apache.tomcat.websocket.TransformationFactory; @@ -54,8 +51,6 @@ public class UpgradeUtil { private static final byte[] WS_ACCEPT = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11".getBytes( StandardCharsets.ISO_8859_1); - private static final Queue<MessageDigest> sha1Helpers = - new ConcurrentLinkedQueue<MessageDigest>(); private UpgradeUtil() { // Utility class. Hide default constructor. @@ -310,19 +305,9 @@ public class UpgradeUtil { } - private static String getWebSocketAccept(String key) throws ServletException { - MessageDigest sha1Helper = sha1Helpers.poll(); - if (sha1Helper == null) { - try { - sha1Helper = MessageDigest.getInstance("SHA1"); - } catch (NoSuchAlgorithmException e) { - throw new ServletException(e); - } - } - sha1Helper.reset(); - sha1Helper.update(key.getBytes(StandardCharsets.ISO_8859_1)); - String result = Base64.encodeBase64String(sha1Helper.digest(WS_ACCEPT)); - sha1Helpers.add(sha1Helper); - return result; + private static String getWebSocketAccept(String key) { + byte[] digest = ConcurrentMessageDigest.digestSHA1( + key.getBytes(StandardCharsets.ISO_8859_1), WS_ACCEPT); + return Base64.encodeBase64String(digest); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org