You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2010/04/07 16:12:27 UTC
svn commit: r931561 - in
/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp:
SslTransport.cs SslTransportFactory.cs
Author: tabish
Date: Wed Apr 7 14:12:26 2010
New Revision: 931561
URL: http://svn.apache.org/viewvc?rev=931561&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQNET-239
Adds URI options for setting which Store name and the Store Location to to load from when attempting to get client certificates for dual authentication type.
Modified:
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransport.cs
activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransportFactory.cs
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransport.cs?rev=931561&r1=931560&r2=931561&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransport.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransport.cs Wed Apr 7 14:12:26 2010
@@ -33,7 +33,8 @@ namespace Apache.NMS.Stomp.Transport.Tcp
private string clientCertSubject;
private string clientCertFilename;
private string clientCertPassword;
-
+ private string keyStoreName;
+ private string keyStoreLocation;
private bool acceptInvalidBrokerCert = false;
private SslStream sslStream;
@@ -95,7 +96,19 @@ namespace Apache.NMS.Stomp.Transport.Tcp
get { return this.acceptInvalidBrokerCert; }
set { this.acceptInvalidBrokerCert = value; }
}
-
+
+ public string KeyStoreName
+ {
+ get { return this.keyStoreName; }
+ set { this.keyStoreName = value; }
+ }
+
+ public string KeyStoreLocation
+ {
+ get { return this.keyStoreLocation; }
+ set { this.keyStoreLocation = value; }
+ }
+
protected override Stream CreateSocketStream()
{
if(this.sslStream != null)
@@ -211,7 +224,27 @@ namespace Apache.NMS.Stomp.Transport.Tcp
}
else
{
- X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
+ string name = String.IsNullOrEmpty(this.keyStoreName) ? StoreName.My.ToString() : this.keyStoreName;
+
+ StoreLocation location = StoreLocation.CurrentUser;
+
+ if(!String.IsNullOrEmpty(this.keyStoreLocation))
+ {
+ if(String.Compare(this.keyStoreLocation, "CurrentUser", true) == 0)
+ {
+ location = StoreLocation.CurrentUser;
+ }
+ else if(String.Compare(this.keyStoreLocation, "LocalMachine", true) == 0)
+ {
+ location = StoreLocation.LocalMachine;
+ }
+ else
+ {
+ throw new NMSException("Invlalid StoreLocation given on URI");
+ }
+ }
+
+ X509Store store = new X509Store(name, location);
collection = store.Certificates;
}
Modified: activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransportFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransportFactory.cs?rev=931561&r1=931560&r2=931561&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransportFactory.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.Stomp/trunk/src/main/csharp/Transport/Tcp/SslTransportFactory.cs Wed Apr 7 14:12:26 2010
@@ -27,6 +27,8 @@ namespace Apache.NMS.Stomp.Transport.Tcp
private string clientCertSubject;
private string clientCertFilename;
private string clientCertPassword;
+ private string keyStoreName;
+ private string keyStoreLocation;
private bool acceptInvalidBrokerCert = false;
public SslTransportFactory() : base()
@@ -62,7 +64,19 @@ namespace Apache.NMS.Stomp.Transport.Tcp
get { return this.acceptInvalidBrokerCert; }
set { this.acceptInvalidBrokerCert = value; }
}
-
+
+ public string KeyStoreName
+ {
+ get { return this.keyStoreName; }
+ set { this.keyStoreName = value; }
+ }
+
+ public string KeyStoreLocation
+ {
+ get { return this.keyStoreLocation; }
+ set { this.keyStoreLocation = value; }
+ }
+
protected override ITransport DoCreateTransport(Uri location, Socket socket, IWireFormat wireFormat )
{
Tracer.Debug("Creating new instance of the SSL Transport.");
@@ -73,6 +87,8 @@ namespace Apache.NMS.Stomp.Transport.Tcp
transport.ClientCertFilename = this.clientCertFilename;
transport.ClientCertPassword = this.clientCertPassword;
transport.ServerName = this.serverName;
+ transport.KeyStoreLocation = this.keyStoreLocation;
+ transport.KeyStoreName = this.keyStoreName;
transport.AcceptInvalidBrokerCert = this.acceptInvalidBrokerCert;
return transport;