/// <summary> /// Updates shared access signature authorization for the service bus namespace. This authorization works on /// public Windows Azure environments and Windows Azure Pack on prim as well. /// </summary> /// <param name="namespaceName">The service bus namespace name</param> /// <param name="ruleName">The SAS authorization rule name</param> /// <param name="primaryKey">The SAS primary key. It'll be generated if empty</param> /// <param name="secondaryKey">The SAS secondary key</param> /// <param name="permissions">Set of permissions given to the rule</param> /// <returns>The created Shared Access Signature authorization rule</returns> public virtual ExtendedAuthorizationRule UpdateSharedAccessAuthorization( string namespaceName, string ruleName, string primaryKey, string secondaryKey, params AccessRights[] permissions) { ExtendedAuthorizationRule oldRule = GetAuthorizationRule(namespaceName, ruleName); if (null == oldRule) { throw new ArgumentException(Resources.ServiceBusAuthorizationRuleNotFound); } SharedAccessAuthorizationRule rule = (SharedAccessAuthorizationRule)oldRule.Rule; // Update the rule rule.Rights = permissions ?? rule.Rights; rule.PrimaryKey = string.IsNullOrEmpty(primaryKey) ? rule.PrimaryKey : primaryKey; rule.SecondaryKey = string.IsNullOrEmpty(secondaryKey) ? rule.SecondaryKey : secondaryKey; // In case that there's nothing to update then assume user asks for primary key renewal if (permissions == null && string.IsNullOrEmpty(secondaryKey) && string.IsNullOrEmpty(primaryKey)) { rule.PrimaryKey = SharedAccessAuthorizationRule.GenerateRandomKey(); } using (HttpClient client = CreateServiceBusHttpClient()) { rule = client.PutJson(UriElement.GetAuthorizationRulePath(namespaceName, ruleName), rule, Logger); } return(CreateExtendedAuthorizationRule(rule, namespaceName)); }
/// <summary> /// Removes shared access signature authorization for the service bus namespace. /// </summary> /// <param name="namespaceName">The service bus namespace name</param> /// <param name="ruleName">The SAS authorization rule name</param> public virtual void RemoveAuthorizationRule(string namespaceName, string ruleName) { using (HttpClient client = CreateServiceBusHttpClient()) { client.Delete(UriElement.GetAuthorizationRulePath(namespaceName, ruleName), Logger); } }
/// <summary> /// Gets all the available connection strings for given namespace. /// </summary> /// <param name="namespaceName">The namespace name</param> /// <returns>List of connection strings</returns> public virtual List <ConnectionDetail> GetConnectionString(string namespaceName) { using (HttpClient client = CreateServiceBusHttpClient()) { return(client.GetJson <List <ConnectionDetail> >( UriElement.ConnectionStringUri(namespaceName), Logger)); } }
/// <summary> /// Gets available connection strings for the specified entity. /// </summary> /// <param name="namespaceName">The namespace name</param> /// <param name="entityName">The entity name</param> /// <param name="entityType">The entity type</param> /// <returns>List of all available connection strings</returns> public virtual List <ConnectionDetail> GetConnectionString( string namespaceName, string entityName, ServiceBusEntityType entityType) { using (HttpClient client = CreateServiceBusHttpClient()) { client.DefaultRequestHeaders.Add("x-process-at", "servicebus"); return(client.GetJson <List <ConnectionDetail> >( UriElement.ConnectionStringUri(namespaceName, entityName, entityType), Logger)); } }
private List <T> GetAuthorizationRuleCore <T>(string namespaceName) where T : class { List <T> rules = null; using (HttpClient client = CreateServiceBusHttpClient()) { rules = client.GetJson <List <T> >( UriElement.GetNamespaceAuthorizationRulesPath(namespaceName), Logger); } return(rules); }
/// <summary> /// Creates new Windows authorization rule for Service Bus. This works on Windows Azure Pack on prim only. /// </summary> /// <param name="namespaceName">The service bus namespace name</param> /// <param name="ruleName">The authorization rule name</param> /// <param name="username">The user principle name</param> /// <param name="permissions">Set of permissions given to the rule</param> /// <returns>The created Windows authorization rule</returns> public virtual AllowRule CreateWindowsAuthorization( string namespaceName, string ruleName, string username, params AccessRights[] permissions) { AllowRule rule = new AllowRule( string.Empty, "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", username, permissions); using (HttpClient client = CreateServiceBusHttpClient()) { rule = client.PostJson(UriElement.GetNamespaceAuthorizationRulesPath(namespaceName), rule, Logger); } return(rule); }
/// <summary> /// Creates shared access signature authorization for the service bus namespace. This authorization works on /// public Windows Azure environments and Windows Azure Pack on prim as well. /// </summary> /// <param name="namespaceName">The service bus namespace name</param> /// <param name="ruleName">The SAS authorization rule name</param> /// <param name="primaryKey">The SAS primary key. It'll be generated if empty</param> /// <param name="secondaryKey">The SAS secondary key</param> /// <param name="permissions">Set of permissions given to the rule</param> /// <returns>The created Shared Access Signature authorization rule</returns> public virtual ExtendedAuthorizationRule CreateSharedAccessAuthorization( string namespaceName, string ruleName, string primaryKey, string secondaryKey, params AccessRights[] permissions) { SharedAccessAuthorizationRule rule = new SharedAccessAuthorizationRule( ruleName, string.IsNullOrEmpty(primaryKey) ? SharedAccessAuthorizationRule.GenerateRandomKey() : primaryKey, secondaryKey, permissions); using (HttpClient client = CreateServiceBusHttpClient()) { rule = client.PostJson(UriElement.GetNamespaceAuthorizationRulesPath(namespaceName), rule, Logger); } return(CreateExtendedAuthorizationRule(rule, namespaceName)); }