コード例 #1
0
        public void GetExpTime_FindsTime()
        {
            var info     = TestHelpers.GetValidTokenInfoRequestResponse();
            var payload  = JsonDocument.Parse(info).RootElement;
            var dateTime = CloudFoundryHelper.GetExpTime(payload);

            Assert.Equal(new DateTime(2016, 9, 2, 8, 04, 23, DateTimeKind.Utc), dateTime);
        }
コード例 #2
0
        public void GetIssueTime_FindsTime()
        {
            var info     = TestHelpers.GetValidTokenInfoRequestResponse();
            var payload  = JObject.Parse(info);
            var dateTime = CloudFoundryHelper.GetIssueTime(payload);

            Assert.Equal(new DateTime(2016, 9, 1, 20, 04, 23, DateTimeKind.Utc), dateTime);
        }
コード例 #3
0
        public void GetScopes_FindsScopes()
        {
            var info    = TestHelpers.GetValidTokenInfoRequestResponse();
            var payload = JObject.Parse(info);
            var scopes  = CloudFoundryHelper.GetScopes(payload);

            Assert.Contains("openid", scopes);
            Assert.Single(scopes);
        }
コード例 #4
0
        public void GetBackChannelHandler_ReturnsExpected()
        {
            var result1 = CloudFoundryHelper.GetBackChannelHandler(false);

            Assert.NotNull(result1);

            var result2 = CloudFoundryHelper.GetBackChannelHandler(true);

            Assert.Null(result2);
        }
コード例 #5
0
        public void GetTokenValidationParameters_ReturnsExpected()
        {
            var parameters = CloudFoundryHelper.GetTokenValidationParameters(null, "https://foo.bar.com/keyurl", null, false);

            Assert.False(parameters.ValidateAudience, "Audience validation should not be enabled by default");
            Assert.True(parameters.ValidateIssuer, "Issuer validation should be enabled by default");
            Assert.NotNull(parameters.IssuerValidator);
            Assert.True(parameters.ValidateLifetime, "Token lifetime validation should be enabled by default");
            Assert.NotNull(parameters.IssuerSigningKeyResolver);
        }
コード例 #6
0
        public void GetTokenValidationParameters_ReturnsExpected()
        {
            var parameters = CloudFoundryHelper.GetTokenValidationParameters(null, "https://foo.bar.com/keyurl", null, false);

            Assert.True(parameters.ValidateAudience);
            Assert.True(parameters.ValidateIssuer);
            Assert.NotNull(parameters.IssuerValidator);

            // Assert.Equal(cftv.ValidateIssuer, parameters.IssuerValidator);
            Assert.True(parameters.ValidateLifetime);
            Assert.NotNull(parameters.IssuerSigningKeyResolver);
        }
コード例 #7
0
        public void GetIssueTime_FindsTime()
        {
            var info = TestHelpers.GetValidTokenInfoRequestResponse();

#if NETCOREAPP3_0
            var payload = JsonDocument.Parse(info).RootElement;
#else
            var payload = JObject.Parse(info);
#endif
            var dateTime = CloudFoundryHelper.GetIssueTime(payload);
            Assert.Equal(new DateTime(2016, 9, 1, 20, 04, 23, DateTimeKind.Utc), dateTime);
        }
コード例 #8
0
        public void GetScopes_FindsScopes()
        {
            var info = TestHelpers.GetValidTokenInfoRequestResponse();

#if NETCOREAPP3_0
            var payload = JsonDocument.Parse(info).RootElement;
#else
            var payload = JObject.Parse(info);
#endif
            var scopes = CloudFoundryHelper.GetScopes(payload);
            Assert.Contains("openid", scopes);
            Assert.Single(scopes);
        }
コード例 #9
0
        public void GetBackChannelHandler_ReturnsExpected()
        {
            var result1 = CloudFoundryHelper.GetBackChannelHandler(false);

            if (Platform.IsFullFramework)
            {
                Assert.Null(result1);
            }
            else
            {
                Assert.NotNull(result1);
            }

            var result2 = CloudFoundryHelper.GetBackChannelHandler(true);

            Assert.Null(result2);
        }
コード例 #10
0
        /// <summary>
        /// Apply service binding info to an <see cref="CloudFoundryOptions"/> instance
        /// </summary>
        /// <param name="si">Service binding information</param>
        /// <param name="options">CloudFoundryOptions options to be updated</param>
        internal static void Configure(SsoServiceInfo si, CloudFoundryOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (si == null)
            {
                return;
            }

            options.AuthorizationUrl = si.AuthDomain;
            options.ClientId         = si.ClientId;
            options.ClientSecret     = si.ClientSecret;

            var backchannelHttpHandler = CloudFoundryHelper.GetBackChannelHandler(options.ValidateCertificates);

            options.TokenValidationParameters = CloudFoundryHelper.GetTokenValidationParameters(options.TokenValidationParameters, options.AuthorizationUrl + CloudFoundryDefaults.JwtTokenUri, backchannelHttpHandler, options.ValidateCertificates, options);
        }