Ejemplo n.º 1
0
        public void SchemeTypeKindAndOAuthTypeSetCorrectly()
        {
            // Arrange
            OAuth2Implicit oAuthImplicit = new OAuth2Implicit();

            // Act & Assert
            Assert.Equal(SecuritySchemeType.OAuth2, oAuthImplicit.SchemeType);
            Assert.Equal(OAuth2Type.Implicit, oAuthImplicit.OAuth2Type);
        }
        private static void AppendOAuth2(OpenApiSecurityScheme scheme, OAuthAuthorization oAuth2)
        {
            Debug.Assert(scheme != null);
            Debug.Assert(oAuth2 != null);

            scheme.Flows = new OpenApiOAuthFlows();
            OpenApiOAuthFlow flow = null;

            switch (oAuth2.OAuth2Type)
            {
            case OAuth2Type.AuthCode:     // AuthCode
                OAuth2AuthCode authCode = (OAuth2AuthCode)oAuth2;
                flow = new OpenApiOAuthFlow
                {
                    AuthorizationUrl = new Uri(authCode.AuthorizationUrl),
                    TokenUrl         = new Uri(authCode.TokenUrl)
                };
                scheme.Flows.AuthorizationCode = flow;
                break;

            case OAuth2Type.Pasword:     // Password
                OAuth2Password password = (OAuth2Password)oAuth2;
                flow = new OpenApiOAuthFlow
                {
                    TokenUrl = new Uri(password.TokenUrl)
                };
                scheme.Flows.Password = flow;
                break;

            case OAuth2Type.Implicit:     // Implicit
                OAuth2Implicit @implicit = (OAuth2Implicit)oAuth2;
                flow = new OpenApiOAuthFlow
                {
                    AuthorizationUrl = new Uri(@implicit.AuthorizationUrl)
                };
                scheme.Flows.Implicit = flow;
                break;

            case OAuth2Type.ClientCredentials:     // ClientCredentials
                OAuth2ClientCredentials credentials = (OAuth2ClientCredentials)oAuth2;
                flow = new OpenApiOAuthFlow
                {
                    TokenUrl = new Uri(credentials.TokenUrl)
                };
                scheme.Flows.ClientCredentials = flow;
                break;
            }

            Debug.Assert(flow != null);
            flow.RefreshUrl = new Uri(oAuth2.RefreshUrl);

            if (oAuth2.Scopes != null)
            {
                flow.Scopes = oAuth2.Scopes.ToDictionary(s => s.Scope, s => s.Description);
            }
        }
Ejemplo n.º 3
0
        public void InitializeOAuth2ImplicitWithRecordSuccess()
        {
            // Arrange
            IEdmRecordExpression record = new EdmRecordExpression(
                new EdmPropertyConstructor("AuthorizationUrl", new EdmStringConstant("http://authorizationUrl")));

            OAuth2Implicit oAuthImplicit = new OAuth2Implicit();

            Assert.Null(oAuthImplicit.Name);
            Assert.Null(oAuthImplicit.Description);
            Assert.Null(oAuthImplicit.Scopes);
            Assert.Null(oAuthImplicit.AuthorizationUrl);

            // Act
            oAuthImplicit.Initialize(record);

            // Assert
            Assert.Null(oAuthImplicit.Name);
            Assert.Null(oAuthImplicit.Description);
            Assert.Null(oAuthImplicit.Scopes);
            Assert.Equal("http://authorizationUrl", oAuthImplicit.AuthorizationUrl);
        }
Ejemplo n.º 4
0
        public void InitializeOAuth2ImplicitWorksWithCsdl()
        {
            // Arrange
            string annotation = @"<Annotation Term=""NS.MyOAuth2Implicit"">
                <Record >
                  <PropertyValue Property=""AuthorizationUrl"" String=""http://authorizationUrl"" />
                </Record>
              </Annotation>";

            IEdmModel model = GetEdmModel(annotation);

            Assert.NotNull(model); // guard
            Assert.NotNull(model.EntityContainer);

            // Act
            OAuth2Implicit oAuthImplicit = model.GetRecord <OAuth2Implicit>(model.EntityContainer, "NS.MyOAuth2Implicit");

            // Assert
            Assert.Null(oAuthImplicit.Name);
            Assert.Null(oAuthImplicit.Description);
            Assert.Null(oAuthImplicit.Scopes);
            Assert.Equal("http://authorizationUrl", oAuthImplicit.AuthorizationUrl);
        }