You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ar...@apache.org on 2008/09/26 13:12:43 UTC

svn commit: r699274 - in /incubator/qpid/trunk/qpid/dotnet/client-010/client: client/Client.cs client/ClientConnectionDelegate.cs transport/ConnectionDelegate.cs

Author: arnaudsimon
Date: Fri Sep 26 04:12:43 2008
New Revision: 699274

URL: http://svn.apache.org/viewvc?rev=699274&view=rev
Log:
qpid-1277: Implemented SASSL PLAIN authentication 

Modified:
    incubator/qpid/trunk/qpid/dotnet/client-010/client/client/Client.cs
    incubator/qpid/trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs
    incubator/qpid/trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs

Modified: incubator/qpid/trunk/qpid/dotnet/client-010/client/client/Client.cs
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/client-010/client/client/Client.cs?rev=699274&r1=699273&r2=699274&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/client-010/client/client/Client.cs (original)
+++ incubator/qpid/trunk/qpid/dotnet/client-010/client/client/Client.cs Fri Sep 26 04:12:43 2008
@@ -57,7 +57,7 @@
         {
             _log.debug(String.Format("Client Connecting to host {0}; port {1}; virtualHost {2}; username {3}", host,
                                      port, virtualHost, username));
-            ConnectionDelegate connectionDelegate = new ClientConnectionDelegate(this);
+            ConnectionDelegate connectionDelegate = new ClientConnectionDelegate(this, username, password);
             ManualResetEvent negotiationComplete = new ManualResetEvent(false);
             connectionDelegate.setCondition(negotiationComplete);
             connectionDelegate.VirtualHost = virtualHost;

Modified: incubator/qpid/trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs?rev=699274&r1=699273&r2=699274&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs (original)
+++ incubator/qpid/trunk/qpid/dotnet/client-010/client/client/ClientConnectionDelegate.cs Fri Sep 26 04:12:43 2008
@@ -18,6 +18,9 @@
 */
 
 using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
 using System.Threading;
 using org.apache.qpid.transport;
 using org.apache.qpid.transport.util;
@@ -28,10 +31,14 @@
     {
         private static readonly Logger log = Logger.get(typeof (ClientConnectionDelegate));
         private readonly Client _client;
+        private string _username;
+        private string _password;
 
-        public ClientConnectionDelegate(Client client)
+        public ClientConnectionDelegate(Client client, string username, string pasword)
         {
             _client = client;
+            _username = username;
+            _password = pasword;
         }
 
         public override SessionDelegate getSessionDelegate()
@@ -44,6 +51,20 @@
             throw t;
         }
 
+        public override void connectionStart(Channel context, ConnectionStart mystruct)
+        {
+            const string mechanism = "PLAIN";          
+            MemoryStream stResponse = new MemoryStream();
+            byte[] part = Encoding.UTF8.GetBytes(_username);
+            stResponse.WriteByte(0);
+            stResponse.Write(part, 0, part.Length);
+            stResponse.WriteByte(0);
+            part = Encoding.UTF8.GetBytes(_password);
+            stResponse.Write(part, 0, part.Length);            
+            Dictionary<String, Object> props = new Dictionary<String, Object>();
+            context.connectionStartOk(props, mechanism, stResponse.ToArray(), "utf8");
+        }
+
         public override void closed()
         {
             log.debug("Delegate closed");
@@ -61,7 +82,7 @@
             }
         }
 
-        public new void connectionClose(Channel context, ConnectionClose connectionClose)
+        public override void connectionClose(Channel context, ConnectionClose connectionClose)
         {
             base.connectionClose(context, connectionClose);
             ErrorCode errorCode = ErrorCode.getErrorCode((int) connectionClose.getReplyCode());

Modified: incubator/qpid/trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs?rev=699274&r1=699273&r2=699274&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs (original)
+++ incubator/qpid/trunk/qpid/dotnet/client-010/client/transport/ConnectionDelegate.cs Fri Sep 26 04:12:43 2008
@@ -68,8 +68,7 @@
         //           Client side
         //-----------------------------------------------
         public override void connectionStart(Channel context, ConnectionStart mstruct)
-        {
-            // todo SASL 
+        {            
             Dictionary<String, Object> props = new Dictionary<String, Object>();
             context.connectionStartOk(props, null, null, "utf8");
         }