コード例 #1
0
        public async Task GetTokenAsyncProducesTokenForTheResource()
        {
            var signature = new SharedAccessSignature("SharedAccessSignature sr=amqps%3A%2F%2Fmy.eh.com%2Fsomepath%2F&sig=%2BLsuqDlN8Us5lp%2FGdyEUMnU1XA4HdXx%2BJUdtkRNr7qI%3D&se=1562258488&skn=keykeykey", "ABC123");
            var provider  = new TrackOneSharedAccessTokenProvider(signature);

            TrackOne.SecurityToken token = await provider.GetTokenAsync(signature.Resource, TimeSpan.FromHours(1));

            Assert.That(token, Is.Not.Null, "A token should have been produced.");
            Assert.That(token.Audience, Is.EqualTo(signature.Resource), "The audience of the token should match the signature.");
        }
コード例 #2
0
        public async Task GetTokenAsyncTokensChangeOnEachIssue()
        {
            var signature = new SharedAccessSignature("SharedAccessSignature sr=amqps%3A%2F%2Fmy.eh.com%2Fsomepath%2F&sig=%2BLsuqDlN8Us5lp%2FGdyEUMnU1XA4HdXx%2BJUdtkRNr7qI%3D&se=1562258488&skn=keykeykey", "ABC123");
            var provider  = new TrackOneSharedAccessTokenProvider(signature);

            TrackOne.SecurityToken first = await provider.GetTokenAsync(signature.Resource, TimeSpan.FromHours(1));

            TrackOne.SecurityToken second = await provider.GetTokenAsync(signature.Resource, TimeSpan.FromMinutes(10));

            Assert.That(first.TokenValue, Is.Not.EqualTo(second.TokenValue));
        }
コード例 #3
0
        public async Task GetTokenAsyncProducesTokenWithCorrectExpiration()
        {
            var      signature  = new SharedAccessSignature("SharedAccessSignature sr=amqps%3A%2F%2Fmy.eh.com%2Fsomepath%2F&sig=%2BLsuqDlN8Us5lp%2FGdyEUMnU1XA4HdXx%2BJUdtkRNr7qI%3D&se=1562258488&skn=keykeykey", "ABC123");
            var      provider   = new TrackOneSharedAccessTokenProvider(signature);
            var      duration   = TimeSpan.FromHours(1.5);
            DateTime expiration = DateTime.UtcNow.Add(duration);

            TrackOne.SecurityToken token = await provider.GetTokenAsync(signature.Resource, duration);

            Assert.That(token, Is.Not.Null, "A token should have been produced.");
            Assert.That(token.ExpiresAtUtc, Is.EqualTo(expiration).Within(TimeSpan.FromSeconds(5)), "The expiration of the token should match the requested duration.");
        }
コード例 #4
0
        public async Task GetTokenAsyncProducesAGenericToken()
        {
            var mockCredential     = new Mock <TokenCredential>();
            var resource           = "amqps://my.eventhubs.com/someHub";
            var jwtToken           = "somevalue";
            var expiration         = DateTimeOffset.Parse("2017-10-27T12:00:00Z");
            var accessToken        = new AccessToken(jwtToken, expiration);
            var eventHubCredential = new EventHubTokenCredential(mockCredential.Object, resource);
            var provider           = new TrackOneGenericTokenProvider(eventHubCredential);

            mockCredential
            .Setup(credential => credential.GetTokenAsync(It.Is <TokenRequestContext>(value => value.Scopes.FirstOrDefault() == GetTokenScope()), It.IsAny <CancellationToken>()))
            .ReturnsAsync(accessToken);

            TrackOne.SecurityToken token = await provider.GetTokenAsync(resource, TimeSpan.FromHours(1));

            Assert.That(token, Is.Not.Null, "A token should have been produced.");
            Assert.That(token, Is.InstanceOf <TrackOneGenericToken>(), "The token should be a generic JWT token.");
        }
コード例 #5
0
        public async Task GetTokenAsyncTokensChangeOnEachIssue()
        {
            var mockCredential     = new Mock <TokenCredential>();
            var resource           = "amqps://my.eventhubs.com/someHub";
            var jwtToken           = "somevalue";
            var expiration         = DateTimeOffset.Parse("2017-10-27T12:00:00Z");
            var accessToken        = new AccessToken(jwtToken, expiration);
            var eventHubCredential = new EventHubTokenCredential(mockCredential.Object, resource);
            var provider           = new TrackOneGenericTokenProvider(eventHubCredential);

            mockCredential
            .Setup(credential => credential.GetTokenAsync(It.Is <TokenRequestContext>(value => value.Scopes.FirstOrDefault() == GetTokenScope()), It.IsAny <CancellationToken>()))
            .ReturnsAsync(accessToken);

            TrackOne.SecurityToken first = await provider.GetTokenAsync(resource, TimeSpan.FromHours(1));

            TrackOne.SecurityToken second = await provider.GetTokenAsync(resource, TimeSpan.FromHours(4));

            Assert.That(first, Is.Not.SameAs(second), "A new token should be created for each request.");
            Assert.That(((TrackOneGenericToken)first).Credential, Is.SameAs(((TrackOneGenericToken)second).Credential), "The token should be based on the same source credential.");
        }
コード例 #6
0
        public async Task GetTokenAsyncProducesATokenwithTheCorrectProperties()
        {
            var mockCredential     = new Mock <TokenCredential>();
            var resource           = "amqps://my.eventhubs.com/someHub";
            var jwtToken           = "somevalue";
            var expiration         = DateTimeOffset.Parse("2017-10-27T12:00:00Z");
            var accessToken        = new AccessToken(jwtToken, expiration);
            var eventHubCredential = new EventHubTokenCredential(mockCredential.Object, resource);
            var provider           = new TrackOneGenericTokenProvider(eventHubCredential);

            mockCredential
            .Setup(credential => credential.GetTokenAsync(It.Is <TokenRequest>(value => value.Scopes.FirstOrDefault() == GetTokenScope()), It.IsAny <CancellationToken>()))
            .ReturnsAsync(accessToken);

            TrackOne.SecurityToken token = await provider.GetTokenAsync(resource, TimeSpan.FromHours(1));

            Assert.That(token, Is.Not.Null, "A token should have been produced.");
            Assert.That(token.TokenValue, Is.EqualTo(jwtToken), "The JWT token should match.");
            Assert.That(token.Audience, Is.EqualTo(resource), "The audience should match the resource.");
            Assert.That(token.ExpiresAtUtc, Is.EqualTo(expiration.UtcDateTime), "The token expiration should match.");
        }