Esempio n. 1
0
        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"))
            {
                var objects = dynamicRaml["responses"] as object[];
                if (objects != null)
                {
                    var responsesNest = objects.ToList().Cast <ExpandoObject>();
                    var responses     = responsesNest.ToDictionary(
                        k => ((IDictionary <string, object>)k)["code"].ToString(), v => (object)v);
                    descriptor.Responses = new ResponsesBuilder(responses).GetAsDictionary(defaultMediaType);
                }
                else
                {
                    descriptor.Responses = new ResponsesBuilder((IDictionary <string, object>)dynamicRaml["responses"]).GetAsDictionary(defaultMediaType);
                }
            }
            return(descriptor);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        public SecuritySchemeDescriptor Build(IDictionary <string, object> dynamicRaml)
        {
            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();
            }

            return(descriptor);
        }
Esempio n. 4
0
        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 }
                }
            };
        }
Esempio n. 5
0
        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 }
                }
            };
        }