You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2014/09/17 20:46:39 UTC
svn commit: r1625737 - in /tomcat/tc7.0.x/trunk: ./
java/org/apache/tomcat/websocket/server/UpgradeUtil.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org