Example #1
0
        public async Task CreateRefreshToken_token_exists_in_store()
        {
            var client      = new Client();
            var accessToken = new Token();

            var handle = await _subject.CreateRefreshTokenAsync(new RefreshTokenCreationRequest { Subject = _user, AccessToken = accessToken, Client = client });

            (await _store.GetRefreshTokenAsync(handle)).Should().NotBeNull();
        }
Example #2
0
        public async Task CreateRefreshToken_token_exists_in_store()
        {
            var client      = new Client();
            var accessToken = new Token();

            var handle = await _subject.CreateRefreshTokenAsync(_user, accessToken, client);

            (await _store.GetRefreshTokenAsync(handle)).Should().NotBeNull();
        }
        public async Task Sliding_Expiration_within_absolute_Expiration()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            var refreshToken = await store.GetAsync(handle);

            var lifetime = refreshToken.LifeTime;

            await Task.Delay(1000);

            var newHandle = await service.UpdateRefreshTokenAsync(refreshToken, client);

            var newRefreshToken = await store.GetAsync(newHandle);

            var newLifetime = newRefreshToken.LifeTime;

            Assert.AreEqual(newLifetime, client.SlidingRefreshTokenLifetime + 1);
        }
        public async Task Sliding_Expiration_does_not_exceed_absolute_Expiration()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            var refreshToken = await store.GetAsync(handle);

            var lifetime = refreshToken.LifeTime;

            await Task.Delay(8000);

            var newHandle = await service.UpdateRefreshTokenAsync(handle, refreshToken, client);

            var newRefreshToken = await store.GetAsync(newHandle);

            var newLifetime = newRefreshToken.LifeTime;

            newLifetime.Should().Be(client.AbsoluteRefreshTokenLifetime);
        }
        public async Task OneTime_Handle_creates_new_Handle()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            var newHandle = await service.UpdateRefreshTokenAsync(handle, await store.GetAsync(handle), client);

            newHandle.Should().NotBe(handle);
        }
        public async Task ReUse_Handle_reuses_Handle()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_reuse");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            var newHandle = await service.UpdateRefreshTokenAsync(await store.GetAsync(handle), client);

            Assert.AreEqual(handle, newHandle);
        }
        public async Task Create_Refresh_Token_Sliding_Lifetime()
        {
            var store = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only");
            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            // make sure a handle is returned
            string.IsNullOrWhiteSpace(handle).Should().BeFalse();

            // make sure refresh token is in store
            var refreshToken = await store.GetAsync(handle);
            refreshToken.Should().NotBeNull();

            // check refresh token values
            client.ClientId.Should().Be(refreshToken.ClientId);
            client.SlidingRefreshTokenLifetime.Should().Be(refreshToken.LifeTime);
        }
        public async Task Create_Refresh_Token_Sliding_Lifetime()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            // make sure a handle is returned
            string.IsNullOrWhiteSpace(handle).Should().BeFalse();

            // make sure refresh token is in store
            var refreshToken = await store.GetAsync(handle);

            refreshToken.Should().NotBeNull();

            // check refresh token values
            client.ClientId.Should().Be(refreshToken.ClientId);
            client.SlidingRefreshTokenLifetime.Should().Be(refreshToken.LifeTime);
        }
        public async Task Create_Refresh_Token_Absolute_Lifetime()
        {
            var store   = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only");

            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);

            // make sure a handle is returned
            Assert.IsFalse(string.IsNullOrWhiteSpace(handle));

            // make sure refresh token is in store
            var refreshToken = await store.GetAsync(handle);

            Assert.IsNotNull(refreshToken);

            // check refresh token values
            Assert.AreEqual(refreshToken.ClientId, client.ClientId);
            Assert.AreEqual(refreshToken.LifeTime, client.AbsoluteRefreshTokenLifetime);
        }
Example #10
0
        public async Task Create_Refresh_Token_Absolute_Lifetime()
        {
            var client = roclient_absolute_refresh_expiration_one_time_only;
            var token  = CreateAccessToken(client, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(user, token, client);

            // make sure a handle is returned
            string.IsNullOrWhiteSpace(handle).Should().BeFalse();

            // make sure refresh token is in store
            var refreshToken = await refreshTokenStore.GetAsync(handle);

            refreshToken.Should().NotBeNull();

            // check refresh token values
            client.ClientId.Should().Be(refreshToken.ClientId);
            client.AbsoluteRefreshTokenLifetime.Should().Be(refreshToken.LifeTime);
        }
        public async Task Sliding_Expiration_does_not_exceed_absolute_Expiration()
        {
            var store = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_sliding_refresh_expiration_one_time_only");
            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);
            var refreshToken = await store.GetAsync(handle);
            var lifetime = refreshToken.LifeTime;

            await Task.Delay(8000);

            var newHandle = await service.UpdateRefreshTokenAsync(handle, refreshToken, client);
            var newRefreshToken = await store.GetAsync(newHandle);
            var newLifetime = newRefreshToken.LifeTime;

            newLifetime.Should().Be(client.AbsoluteRefreshTokenLifetime);
        }
        public async Task OneTime_Handle_creates_new_Handle()
        {
            var store = new InMemoryRefreshTokenStore();
            var service = new DefaultRefreshTokenService(store);

            var client = await _clients.FindClientByIdAsync("roclient_absolute_refresh_expiration_one_time_only");
            var token = TokenFactory.CreateAccessToken(client.ClientId, "valid", 60, "read", "write");

            var handle = await service.CreateRefreshTokenAsync(token, client);
            var newHandle = await service.UpdateRefreshTokenAsync(handle, await store.GetAsync(handle), client);

            newHandle.Should().NotBe(handle);
        }