Esempio n. 1
0
        public async Task AuthorizationService_ValidateRequestAsync_ReturnsIdentityOfApplication()
        {
            // arrange
            ResetMocks();
            var jwt              = "jwt";
            var applicationId    = 1;
            var fncConnectResult = new JwtValidationResultDto()
            {
                JwtData = new FullJwtDataDto()
                {
                    AppInfo = new ApplicationDto()
                    {
                        ImmutableAppID = applicationId
                    }
                }
            };
            var application = new Application(applicationId, "test");

            _jwtManager.Setup(x => x.ValidateJwtAsync(It.IsAny <string>())).ReturnsAsync(fncConnectResult);
            _repo.Setup(x => x.GetApplicationAsync(It.IsAny <long>())).ReturnsAsync(application);

            var target = new AuthorizationService(_jwtManager.Object, _repo.Object);

            // act
            var result = await target.ValidateRequestAsync(jwt);

            // assert
            Assert.NotNull(result);
            Assert.Equal(applicationId, result.Id);
        }
Esempio n. 2
0
        public async Task <Identity> ValidateRequestAsync(string jwt)
        {
            if (string.IsNullOrWhiteSpace(jwt))
            {
                throw new ArgumentNullException("jwt");
            }

            // Validate JWT
            JwtValidationResultDto fncConnectResult = await _jwtManager.ValidateJwtAsync(jwt).ConfigureAwait(false);

            ApplicationDto appInfo = fncConnectResult.JwtData.AppInfo;

            // check if Application is configured in EventPublisher
            Application application = await _repository.GetApplicationAsync(fncConnectResult.JwtData.AppInfo.ImmutableAppID).ConfigureAwait(false);

            if (application == null)
            {
                throw new NotAuthorizedException(string.Format("Application {0} is not configured.", appInfo.AppName));
            }

            return(new Identity()
            {
                Id = appInfo.ImmutableAppID,
                Name = appInfo.AppName
            });
        }
Esempio n. 3
0
        public async Task AuthorizationService_ValidateRequestAsync_ThrowsNotAuthorizedIfApplicationIsNotFound()
        {
            // arrange
            ResetMocks();
            var jwt = "jwt";
            var fncConnectResult = new JwtValidationResultDto()
            {
                JwtData = new FullJwtDataDto()
                {
                    AppInfo = new ApplicationDto()
                    {
                        ImmutableAppID = 1
                    }
                }
            };

            _jwtManager.Setup(x => x.ValidateJwtAsync(It.IsAny <string>())).ReturnsAsync(fncConnectResult);
            _repo.Setup(x => x.GetApplicationAsync(It.IsAny <long>())).ReturnsAsync((Application)null);

            var target = new AuthorizationService(_jwtManager.Object, _repo.Object);

            // act
            await Assert.ThrowsAsync <NotAuthorizedException>(async() => await target.ValidateRequestAsync(jwt));
        }