You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2012/11/27 00:30:32 UTC

svn commit: r1413931 - /activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala

Author: chirino
Date: Mon Nov 26 23:30:31 2012
New Revision: 1413931

URL: http://svn.apache.org/viewvc?rev=1413931&view=rev
Log:
Support configuring the client_auth setting on wss transports.

Modified:
    activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala

Modified: activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala?rev=1413931&r1=1413930&r2=1413931&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-broker/src/main/scala/org/apache/activemq/apollo/broker/jetty/WebSocketTransportFactory.scala Mon Nov 26 23:30:31 2012
@@ -25,10 +25,10 @@ import org.eclipse.jetty.server.nio.Sele
 import javax.net.ssl.SSLContext
 import org.eclipse.jetty.server.ssl.SslSelectChannelConnector
 import org.eclipse.jetty.util.thread.ExecutorThreadPool
-import javax.servlet.http.HttpServletRequest
+import javax.servlet.http.{HttpServletResponse, HttpServletRequest}
 import org.eclipse.jetty.websocket.{WebSocket, WebSocketServlet}
 import org.eclipse.jetty.server.{Connector, Server}
-import java.net.{InetSocketAddress, URI}
+import java.net.{URL, InetSocketAddress, URI}
 import java.lang.Class
 import scala.reflect.BeanProperty
 import java.nio.ByteBuffer
@@ -105,6 +105,7 @@ object WebSocketTransportFactory extends
         val scheme = uri.getScheme
         val host = uri.getHost
         var port = uri.getPort
+        val options = URISupport.parseParamters(uri);
 
         scheme match {
           case "ws" =>
@@ -133,7 +134,17 @@ object WebSocketTransportFactory extends
             val connector = new SslSelectChannelConnector
             val ssl_settings = connector.getSslContextFactory;
             ssl_settings.setSslContext(sslContext)
-            ssl_settings.setWantClientAuth(true)
+            options.get("client_auth") match {
+              case null =>
+                ssl_settings.setWantClientAuth(true)
+              case "want" =>
+                ssl_settings.setWantClientAuth(true)
+              case "need" =>
+                ssl_settings.setNeedClientAuth(true)
+              case "none" =>
+              case _ =>
+                warn("Invalid setting for the wss protcol 'client_auth' query option.  Please set to one of: want, need, or none")
+            }
             connector
         }
         connector.setHost(host)
@@ -199,6 +210,11 @@ object WebSocketTransportFactory extends
       }
     }
 
+    override def doGet(req: HttpServletRequest, resp: HttpServletResponse) {
+      resp.setContentType("application/json")
+      resp.getOutputStream.println("{}");
+    }
+
     def doWebSocketConnect(request: HttpServletRequest, protocol: String) = WebSocketTransport(this, request, protocol)
   }