You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2009/03/16 22:21:56 UTC

svn commit: r755008 - in /qpid/trunk/qpid/cpp/src: Makefile.am broker.vcproj client.vcproj common.vcproj qmfconsole.vcproj qpid.sln qpid/client/windows/ qpid/client/windows/SaslFactory.cpp qpidbroker.vcproj

Author: shuston
Date: Mon Mar 16 21:21:54 2009
New Revision: 755008

URL: http://svn.apache.org/viewvc?rev=755008&view=rev
Log:
Add PLAIN auth client handling for Windows; fixes QPID-1733

Added:
    qpid/trunk/qpid/cpp/src/qpid/client/windows/
    qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp   (with props)
Modified:
    qpid/trunk/qpid/cpp/src/Makefile.am
    qpid/trunk/qpid/cpp/src/broker.vcproj
    qpid/trunk/qpid/cpp/src/client.vcproj
    qpid/trunk/qpid/cpp/src/common.vcproj
    qpid/trunk/qpid/cpp/src/qmfconsole.vcproj
    qpid/trunk/qpid/cpp/src/qpid.sln
    qpid/trunk/qpid/cpp/src/qpidbroker.vcproj

Modified: qpid/trunk/qpid/cpp/src/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/Makefile.am?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/src/Makefile.am Mon Mar 16 21:21:54 2009
@@ -29,6 +29,7 @@
   client.vcproj \
   qmfconsole.vcproj \
   protocol_gen.mak \
+  qpid/client/windows/SaslFactory.cpp \
   qpid/log/windows/SinkOptions.cpp \
   qpid/log/windows/SinkOptions.h \
   qpid/sys/windows/check.h \

Modified: qpid/trunk/qpid/cpp/src/broker.vcproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/broker.vcproj?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/broker.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/broker.vcproj Mon Mar 16 21:21:54 2009
@@ -24,7 +24,7 @@
 	ProjectType="Visual C++"
 	Version="9.00"
 	Name="broker"
-	ProjectGUID="{09613D48-FECA-1BAD-9D20-8C378F43FDD9}"
+	ProjectGUID="{09613D48-FECA-1BAD-9D20-8C374564ADCF}"
 	RootNamespace="broker"
 	Keyword="Win32Proj"
 	SignManifests="true"

Modified: qpid/trunk/qpid/cpp/src/client.vcproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/client.vcproj?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/client.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/client.vcproj Mon Mar 16 21:21:54 2009
@@ -24,7 +24,7 @@
 	ProjectType="Visual C++"
 	Version="9.00"
 	Name="client"
-	ProjectGUID="{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}"
+	ProjectGUID="{6961DBA3-FECA-1BAD-F396-8C394564ADCF}"
 	RootNamespace="client"
 	Keyword="Win32Proj"
 	SignManifests="true"
@@ -456,9 +456,6 @@
 				RelativePath="qpid\client\Results.cpp">
 			</File>
 			<File
-				RelativePath="qpid\client\SaslFactory.cpp">
-			</File>
-			<File
 				RelativePath="qpid\client\SessionBase_0_10.cpp">
 			</File>
 			<File
@@ -482,6 +479,9 @@
 			<File
 				RelativePath="qpid\client\SubscriptionManager.cpp">
 			</File>
+			<File
+				RelativePath="qpid\client\windows\SaslFactory.cpp">
+			</File>
 		</Filter>
 		<Filter
 			Name="Header Files"

Modified: qpid/trunk/qpid/cpp/src/common.vcproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/common.vcproj?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/common.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/common.vcproj Mon Mar 16 21:21:54 2009
@@ -24,7 +24,7 @@
 	ProjectType="Visual C++"
 	Version="9.00"
 	Name="common"
-	ProjectGUID="{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}"
+	ProjectGUID="{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}"
 	RootNamespace="common"
 	Keyword="Win32Proj"
 	SignManifests="true"

Modified: qpid/trunk/qpid/cpp/src/qmfconsole.vcproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qmfconsole.vcproj?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qmfconsole.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/qmfconsole.vcproj Mon Mar 16 21:21:54 2009
@@ -24,7 +24,7 @@
 	ProjectType="Visual C++"
 	Version="9.00"
 	Name="qmfconsole"
-	ProjectGUID="{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}"
+	ProjectGUID="{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}"
 	RootNamespace="qmfconsole"
 	Keyword="Win32Proj"
 	SignManifests="true"

Modified: qpid/trunk/qpid/cpp/src/qpid.sln
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid.sln?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid.sln (original)
+++ qpid/trunk/qpid/cpp/src/qpid.sln Mon Mar 16 21:21:54 2009
@@ -8,27 +8,27 @@
 #
 # MPC Command:
 # C:\ace\MPC\mwc.pl -type vc9 -features boost=1 qpid.mwc
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "broker", "broker.vcproj", "{09613D48-FECA-1BAD-9D20-8C378F43FDD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "broker", "broker.vcproj", "{09613D48-FECA-1BAD-9D20-8C374564ADCF}"
 	ProjectSection(ProjectDependencies) = postProject
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9} = {C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF} = {C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "client", "client.vcproj", "{6961DBA3-FECA-1BAD-F396-8C394564ADCF}"
 	ProjectSection(ProjectDependencies) = postProject
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9} = {C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF} = {C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcproj", "{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcproj", "{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qmfconsole", "qmfconsole.vcproj", "{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qmfconsole", "qmfconsole.vcproj", "{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}"
 	ProjectSection(ProjectDependencies) = postProject
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9} = {6961DBA3-FECA-1BAD-F396-8C398F43FDD9}
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF} = {6961DBA3-FECA-1BAD-F396-8C394564ADCF}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qpidbroker", "qpidbroker.vcproj", "{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qpidbroker", "qpidbroker.vcproj", "{66213D3E-FECA-1BAD-9D20-8C374564ADCF}"
 	ProjectSection(ProjectDependencies) = postProject
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9} = {09613D48-FECA-1BAD-9D20-8C378F43FDD9}
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9} = {C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF} = {09613D48-FECA-1BAD-9D20-8C374564ADCF}
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF} = {C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}
 	EndProjectSection
 EndProject
 Global
@@ -39,46 +39,46 @@
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Debug|Win32.Build.0 = Debug|Win32
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Debug|x64.ActiveCfg = Debug|x64
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Debug|x64.Build.0 = Debug|x64
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Release|Win32.ActiveCfg = Release|Win32
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Release|Win32.Build.0 = Release|Win32
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Release|x64.ActiveCfg = Release|x64
-		{09613D48-FECA-1BAD-9D20-8C378F43FDD9}.Release|x64.Build.0 = Release|x64
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Debug|Win32.Build.0 = Debug|Win32
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Debug|x64.ActiveCfg = Debug|x64
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Debug|x64.Build.0 = Debug|x64
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Release|Win32.ActiveCfg = Release|Win32
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Release|Win32.Build.0 = Release|Win32
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Release|x64.ActiveCfg = Release|x64
-		{6961DBA3-FECA-1BAD-F396-8C398F43FDD9}.Release|x64.Build.0 = Release|x64
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Debug|Win32.Build.0 = Debug|Win32
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Debug|x64.ActiveCfg = Debug|x64
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Debug|x64.Build.0 = Debug|x64
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Release|Win32.ActiveCfg = Release|Win32
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Release|Win32.Build.0 = Release|Win32
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Release|x64.ActiveCfg = Release|x64
-		{C961EF23-FECA-1BAD-BB9C-8C3A8F43FDD9}.Release|x64.Build.0 = Release|x64
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Debug|Win32.Build.0 = Debug|Win32
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Debug|x64.ActiveCfg = Debug|x64
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Debug|x64.Build.0 = Debug|x64
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Release|Win32.ActiveCfg = Release|Win32
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Release|Win32.Build.0 = Release|Win32
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Release|x64.ActiveCfg = Release|x64
-		{C95DE177-FECA-1BAD-5EDC-8FFA8F43FDD9}.Release|x64.Build.0 = Release|x64
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Debug|Win32.ActiveCfg = Debug|Win32
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Debug|Win32.Build.0 = Debug|Win32
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Debug|x64.ActiveCfg = Debug|x64
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Debug|x64.Build.0 = Debug|x64
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Release|Win32.ActiveCfg = Release|Win32
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Release|Win32.Build.0 = Release|Win32
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Release|x64.ActiveCfg = Release|x64
-		{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}.Release|x64.Build.0 = Release|x64
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Debug|Win32.Build.0 = Debug|Win32
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Debug|x64.ActiveCfg = Debug|x64
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Debug|x64.Build.0 = Debug|x64
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Release|Win32.ActiveCfg = Release|Win32
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Release|Win32.Build.0 = Release|Win32
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Release|x64.ActiveCfg = Release|x64
+		{09613D48-FECA-1BAD-9D20-8C374564ADCF}.Release|x64.Build.0 = Release|x64
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Debug|Win32.Build.0 = Debug|Win32
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Debug|x64.ActiveCfg = Debug|x64
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Debug|x64.Build.0 = Debug|x64
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Release|Win32.ActiveCfg = Release|Win32
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Release|Win32.Build.0 = Release|Win32
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Release|x64.ActiveCfg = Release|x64
+		{6961DBA3-FECA-1BAD-F396-8C394564ADCF}.Release|x64.Build.0 = Release|x64
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Debug|Win32.Build.0 = Debug|Win32
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Debug|x64.ActiveCfg = Debug|x64
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Debug|x64.Build.0 = Debug|x64
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Release|Win32.ActiveCfg = Release|Win32
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Release|Win32.Build.0 = Release|Win32
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Release|x64.ActiveCfg = Release|x64
+		{C961EF23-FECA-1BAD-BB9C-8C3A4564ADCF}.Release|x64.Build.0 = Release|x64
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Debug|Win32.Build.0 = Debug|Win32
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Debug|x64.ActiveCfg = Debug|x64
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Debug|x64.Build.0 = Debug|x64
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Release|Win32.ActiveCfg = Release|Win32
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Release|Win32.Build.0 = Release|Win32
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Release|x64.ActiveCfg = Release|x64
+		{C95DE177-FECA-1BAD-5EDC-8FFA4564ADCF}.Release|x64.Build.0 = Release|x64
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Debug|Win32.Build.0 = Debug|Win32
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Debug|x64.ActiveCfg = Debug|x64
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Debug|x64.Build.0 = Debug|x64
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Release|Win32.ActiveCfg = Release|Win32
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Release|Win32.Build.0 = Release|Win32
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Release|x64.ActiveCfg = Release|x64
+		{66213D3E-FECA-1BAD-9D20-8C374564ADCF}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

Added: qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp?rev=755008&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp (added)
+++ qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp Mon Mar 16 21:21:54 2009
@@ -0,0 +1,139 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#include "qpid/client/SaslFactory.h"
+#include "qpid/client/ConnectionSettings.h"
+
+#include "qpid/Exception.h"
+#include "qpid/framing/reply_exceptions.h"
+#include "qpid/sys/SecurityLayer.h"
+#include "qpid/log/Statement.h"
+
+#include "boost/tokenizer.hpp"
+
+namespace qpid {
+namespace client {
+
+using qpid::sys::SecurityLayer;
+using qpid::framing::InternalErrorException;
+
+class WindowsSasl : public Sasl
+{
+  public:
+    WindowsSasl(const ConnectionSettings&);
+    ~WindowsSasl();
+    std::string start(const std::string& mechanisms);
+    std::string step(const std::string& challenge);
+    std::string getMechanism();
+    std::auto_ptr<SecurityLayer> getSecurityLayer(uint16_t maxFrameSize);
+  private:
+    ConnectionSettings settings;
+    std::string mechanism;
+};
+
+qpid::sys::Mutex SaslFactory::lock;
+std::auto_ptr<SaslFactory> SaslFactory::instance;
+
+SaslFactory::SaslFactory()
+{
+}
+
+SaslFactory::~SaslFactory()
+{
+}
+
+SaslFactory& SaslFactory::getInstance()
+{
+    qpid::sys::Mutex::ScopedLock l(lock);
+    if (!instance.get()) {
+        instance = std::auto_ptr<SaslFactory>(new SaslFactory());
+    }
+    return *instance;
+}
+
+std::auto_ptr<Sasl> SaslFactory::create(const ConnectionSettings& settings)
+{
+    std::auto_ptr<Sasl> sasl(new WindowsSasl(settings));
+    return sasl;
+}
+
+namespace {
+    const std::string ANONYMOUS = "ANONYMOUS";
+    const std::string PLAIN = "PLAIN";
+}
+
+WindowsSasl::WindowsSasl(const ConnectionSettings& s)
+  : settings(s) 
+{
+}
+
+WindowsSasl::~WindowsSasl() 
+{
+}
+
+std::string WindowsSasl::start(const std::string& mechanisms)
+{
+    QPID_LOG(debug, "WindowsSasl::start(" << mechanisms << ")");
+
+    typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
+    boost::char_separator<char> sep(" ");
+    bool havePlain = false;
+    bool haveAnon = false;
+    tokenizer mechs(mechanisms, sep);
+    for (tokenizer::iterator mech = mechs.begin();
+         mech != mechs.end();
+         ++mech) {
+        if (*mech == ANONYMOUS)
+            haveAnon = true;
+        else if (*mech == PLAIN)
+            havePlain = true;
+    }
+    if (!haveAnon && !havePlain)
+        throw InternalErrorException(QPID_MSG("Sasl error: no common mechanism"));
+
+    std::string resp = "";
+    if (havePlain) {
+        mechanism = PLAIN;
+        resp = ((char)0) + settings.username + ((char)0) + settings.password;
+    }
+    else {
+        mechanism = ANONYMOUS;
+    }
+    return resp;
+}
+
+std::string WindowsSasl::step(const std::string& challenge)
+{
+    // Shouldn't get this for PLAIN...
+    throw InternalErrorException(QPID_MSG("Sasl step error"));
+}
+
+std::string WindowsSasl::getMechanism()
+{
+    return mechanism;
+}
+
+std::auto_ptr<SecurityLayer> WindowsSasl::getSecurityLayer(uint16_t maxFrameSize)
+{
+    return std::auto_ptr<SecurityLayer>(0);
+}
+
+}} // namespace qpid::client

Propchange: qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: qpid/trunk/qpid/cpp/src/qpid/client/windows/SaslFactory.cpp
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: qpid/trunk/qpid/cpp/src/qpidbroker.vcproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpidbroker.vcproj?rev=755008&r1=755007&r2=755008&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpidbroker.vcproj (original)
+++ qpid/trunk/qpid/cpp/src/qpidbroker.vcproj Mon Mar 16 21:21:54 2009
@@ -3,7 +3,7 @@
 	ProjectType="Visual C++"
 	Version="9.00"
 	Name="qpidbroker"
-	ProjectGUID="{66213D3E-FECA-1BAD-9D20-8C378F43FDD9}"
+	ProjectGUID="{66213D3E-FECA-1BAD-9D20-8C374564ADCF}"
 	RootNamespace="qpidbroker"
 	Keyword="Win32Proj"
 	SignManifests="true"



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org