public void ShouldAllowAccessIfTokenIsValidAndDataMatchesRecords() { var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtToken()); var apiName = _faker.Random.Word(); var consumerName = _faker.Random.Word(); _mockAwsStsGateway.Setup(x => x.GetTemporaryCredentials(It.IsAny <string>())).Returns(new AssumeRoleResponse()); _mockAwsApiGateway.Setup(x => x.GetApiName(It.IsAny <string>(), It.IsAny <Credentials>())).Returns(apiName); var tokenData = new AuthTokenServiceFlow { ApiEndpointName = request.ApiEndpointName, ApiName = apiName, HttpMethodType = request.HttpMethodType, Environment = request.Environment, ConsumerName = consumerName, Enabled = true, ExpirationDate = null }; _mockDatabaseGateway.Setup(x => x.GetTokenData(It.IsAny <int>())).Returns(tokenData); var result = _classUnderTest.ExecuteServiceAuth(request); result.Allow.Should().BeTrue(); result.User.Should().Be(consumerName + tokenData.Id); }
public void VerifyThatUseCaseCallsGateway() { var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtToken()); _mockDatabaseGateway.Setup(x => x.GetTokenData(It.IsAny <int>())).Returns(new AuthTokenServiceFlow()); _mockAwsStsGateway.Setup(x => x.GetTemporaryCredentials(It.IsAny <string>())).Returns(new AssumeRoleResponse()); _classUnderTest.ExecuteServiceAuth(request); _mockDatabaseGateway.Verify(x => x.GetTokenData(It.IsAny <int>()), Times.Once); }
public void ShouldReturnFalseIfTokenIsNotValid() { var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtToken()); //change key to simulate failed validation Environment.SetEnvironmentVariable("jwtSecret", _faker.Random.AlphaNumeric(16)); var result = _classUnderTest.ExecuteServiceAuth(request); result.Allow.Should().BeFalse(); result.User.Should().Be("user"); }
public void ShouldNotAllowAccessIfTokenIsValidButDoesNotMatchTokenDataRecords() { var request = GenerateAuthorizerRequest(GenerateJwtHelper.GenerateJwtToken()); _mockDatabaseGateway.Setup(x => x.GetTokenData(It.IsAny <int>())).Returns(new AuthTokenServiceFlow()); var apiName = _faker.Random.Word(); _mockAwsStsGateway.Setup(x => x.GetTemporaryCredentials(It.IsAny <string>())).Returns(new AssumeRoleResponse()); _mockAwsApiGateway.Setup(x => x.GetApiName(It.IsAny <string>(), It.IsAny <Credentials>())).Returns(apiName); var result = _classUnderTest.ExecuteServiceAuth(request); result.Allow.Should().BeFalse(); result.User.Should().Be("0"); }
public void Setup() { _serviceProvider = new Mock <IServiceProvider>(); _classUnderTest = new VerifyTokenHandler(_serviceProvider.Object); _mockDatabaseGateway = new Mock <IAuthTokenDatabaseGateway>(); _mockAwsApiGateway = new Mock <IAwsApiGateway>(); _mockAwsStsGateway = new Mock <IAwsStsGateway>(); _mockDynamoDbGateway = new Mock <IDynamoDbGateway>(); //set up env vars Environment.SetEnvironmentVariable("jwtSecret", _fixture.Create <string>()); Environment.SetEnvironmentVariable("hackneyUserAuthTokenJwtSecret", _faker.Random.AlphaNumeric(25)); //set up JWT tokens _allowedGroups = new List <string> { _faker.Random.Word(), _faker.Random.Word() }; _jwtServiceFlow = GenerateJwtHelper.GenerateJwtToken(); _jwtUserFlow = GenerateJwtHelper.GenerateJwtTokenUserFlow(_allowedGroups); }