public void HybridConnectionWithAuthorization() { string relayName = "HybridConnectionWithAuthorization"; var ns = NamespaceManager.CreateFromConnectionString(TestServiceBus.relayConnectionString); try { //https://www.codit.eu/blog/2014/12/securing-azure-service-bus-relay-endpoints-with-sharedaccesssignatures/ var relayDescription = new HybridConnectionDescription(relayName) { RequiresClientAuthorization = true }; var sendKey = SharedAccessAuthorizationRule.GenerateRandomKey(); var sendKeyName = "SendAccessKey"; var listenKey = SharedAccessAuthorizationRule.GenerateRandomKey(); var listenKeyName = "ListenAccessKey"; relayDescription.Authorization.Add(new SharedAccessAuthorizationRule(listenKeyName, listenKey, new List <AccessRights> { AccessRights.Listen })); relayDescription.Authorization.Add(new SharedAccessAuthorizationRule(sendKeyName, sendKey, new List <AccessRights> { AccessRights.Send })); ns.CreateHybridConnection(relayDescription); Assert.IsTrue(ns.HybridConnectionExists(relayName)); } finally { ns.DeleteHybridConnection(relayName); } }
static void ConfigureCreateCommand(CommandLineApplication hcCommand) { hcCommand.RelayCommand("create", (createCmd) => { createCmd.Description = "Create a HybridConnection"; var pathArgument = createCmd.Argument("path", "HybridConnection path"); var connectionStringArgument = createCmd.Argument("connectionString", "Relay ConnectionString"); var requireClientAuthOption = createCmd.Option( CommandStrings.RequiresClientAuthTemplate, CommandStrings.RequiresClientAuthDescription, CommandOptionType.SingleValue); createCmd.OnExecute(async() => { string connectionString = ConnectionStringUtility.ResolveConnectionString(connectionStringArgument); if (string.IsNullOrEmpty(connectionString) || string.IsNullOrEmpty(pathArgument.Value)) { TraceMissingArgument(string.IsNullOrEmpty(connectionString) ? connectionStringArgument.Name : pathArgument.Name); createCmd.ShowHelp(); return(1); } var connectionStringBuilder = new RelayConnectionStringBuilder(connectionString); RelayTraceSource.TraceInfo($"Creating HybridConnection '{pathArgument.Value}' in {connectionStringBuilder.Endpoint.Host}..."); var hcDescription = new HybridConnectionDescription(pathArgument.Value); hcDescription.RequiresClientAuthorization = GetBoolOption(requireClientAuthOption, true); var namespaceManager = new RelayNamespaceManager(connectionString); await namespaceManager.CreateHybridConnectionAsync(hcDescription); RelayTraceSource.TraceInfo($"Creating HybridConnection '{pathArgument.Value}' in {connectionStringBuilder.Endpoint.Host} succeeded"); return(0); }); }); }
public void GetHybridConnection() { string relayName = "GetHybridConnection"; var ns = NamespaceManager.CreateFromConnectionString(TestServiceBus.relayConnectionString); try { ns.CreateHybridConnection(relayName); HybridConnectionDescription initialDesc = ns.GetHybridConnection(relayName); } finally { ns.DeleteHybridConnection(relayName); } }
public void TestHybridConnectionExits() { string relayName = "GetHybridConnection"; var ns = NamespaceManager.CreateFromConnectionString(TestServiceBus.relayConnectionString); try { ns.DeleteHybridConnection(relayName); } catch (Exception) { } try { HybridConnectionDescription hd = null; Assert.IsFalse(ns.HybridConnectionExists(relayName, out hd)); ns.CreateHybridConnection(relayName); Assert.IsTrue(ns.HybridConnectionExists(relayName)); } finally { ns.DeleteHybridConnection(relayName); } }