public SecuritySchemeDescriptor Build(IDictionary<string, object> dynamicRaml, string defaultMediaType) { var descriptor = new SecuritySchemeDescriptor(); if (dynamicRaml.ContainsKey("headers")) descriptor.Headers = new ParametersBuilder((IDictionary<string, object>)dynamicRaml["headers"]).GetAsDictionary(); if (dynamicRaml.ContainsKey("queryParameters")) descriptor.QueryParameters = new ParametersBuilder((IDictionary<string, object>)dynamicRaml["queryParameters"]).GetAsDictionary(); if (dynamicRaml.ContainsKey("responses")) descriptor.Responses = new ResponsesBuilder((IDictionary<string, object>)dynamicRaml["responses"]).GetAsDictionary(defaultMediaType); return descriptor; }
public void UseOAuth1(string authorizationUri, string requestTokenUri, string tokenCredentialsUri, SecuritySchemeDescriptor securitySchemeDescriptor) { securityType = "oauth_1_0"; var securitySettings = new SecuritySettings { AuthorizationUri = authorizationUri, RequestTokenUri = requestTokenUri, TokenCredentialsUri = tokenCredentialsUri }; securityScheme = new SecurityScheme { DescribedBy = securitySchemeDescriptor, Settings = securitySettings, Type = new Dictionary<string, IDictionary<string, string>> {{"OAuth 1.0", null}} }; }
public void UseOAuth2(string authorizationUri, string accessTokenUri, IEnumerable<string> authorizationGrants, IEnumerable<string> scopes, SecuritySchemeDescriptor securitySchemeDescriptor) { securityType = "oauth_2_0"; var securitySettings = new SecuritySettings { AuthorizationUri = authorizationUri, AccessTokenUri = accessTokenUri, AuthorizationGrants = authorizationGrants, Scopes = scopes }; securityScheme = new SecurityScheme { DescribedBy = securitySchemeDescriptor, Settings = securitySettings, Type = new Dictionary<string, IDictionary<string, string>> {{"OAuth 2.0", null}} }; }
private void SerializeSecurityDescriptor(StringBuilder sb, SecuritySchemeDescriptor describedBy, int indent) { if(describedBy == null) return; sb.AppendLine("describedBy:".Indent(indent)); SerializeParameters(sb, "headers", describedBy.Headers, indent + 2); SerializeParameters(sb, "queryParameters", describedBy.QueryParameters, indent + 2); if (describedBy.Responses != null && describedBy.Responses.Any()) { sb.AppendLine("responses:".Indent(indent + 2)); foreach (var response in describedBy.Responses) { response.Value.Code = response.Key; SerializeResponse(sb, response.Value, indent + 4); } } }