public async Task <IActionResult> IsTokenStillValid([FromHeader] AuthorizationHeaders authHeaders)
        {
            using (_logger.BeginScope(GetTransactionLoggingScope()))
            {
                _logger.LogDebug($"{nameof(IsTokenStillValid)}" + " called");
                if (!CheckAuthorizationHeadersForClientAndToken(authHeaders))
                {
                    return(GetBadRequestResponse());
                }

                return(await Task.Run(() =>
                {
                    var tokenIsStillValid = _authorizationProvider.IsTokenStillValid(authHeaders.ClientId, authHeaders.AuthorizationToken);
                    return Ok(GetApiResponse(tokenIsStillValid));
                }));
            }
        }
Beispiel #2
0
        /// <summary>
        /// Checks auth headers to see if credentials were provided
        /// </summary>
        /// <param name="authHeaders"></param>
        /// <returns>true if credentials are present</returns>
        protected bool CheckAuthorizationHeadersForCredentials(AuthorizationHeaders authHeaders)
        {
            if (authHeaders == null)
            {
                _logger.LogError("No authorization headers received");
                return(false);
            }

            if (string.IsNullOrWhiteSpace(authHeaders.ClientId) ||
                string.IsNullOrWhiteSpace(authHeaders.Password))
            {
                _logger.LogError("No authorization token received");
                return(false);
            }

            return(true);
        }
        public async Task <IActionResult> IssueToken([FromHeader] AuthorizationHeaders authHeaders)
        {
            using (_logger.BeginScope(GetTransactionLoggingScope()))
            {
                _logger.LogDebug($"{nameof(IssueToken)}" + " called");
                if (!CheckAuthorizationHeadersForCredentials(authHeaders))
                {
                    return(GetBadRequestResponse());
                }

                return(await Task.Run(() =>
                {
                    var issuedToken = _authorizationProvider.VerifyIsPaidUserAndIssueToken(authHeaders.ClientId, authHeaders.Password, out string token);
                    if (issuedToken)
                    {
                        return Ok(GetApiResponse(token));
                    }
                    return GetUnauthorizedResponse();
                }));
            }
        }
Beispiel #4
0
        public async Task <IActionResult> CalculatePaid([FromHeader] AuthorizationHeaders authHeaders, [FromBody] MortgageCalculationRequest request)
        {
            using (_logger.BeginScope(GetTransactionLoggingScope()))
            {
                _logger.LogInformation($"{nameof(CalculatePaid)}" + " called with request {@request}");
                if (!CheckAuthorizationHeadersForClientAndToken(authHeaders))
                {
                    return(GetBadRequestResponse());
                }

                if (_authorizationProvider.IsTokenStillValid(authHeaders.ClientId, authHeaders.AuthorizationToken))
                {
                    return(await Task.Run(() =>
                    {
                        var result = _mortgageCalculatorFacade.GetMortgageCalculation(request);
                        return GetResultForMortageCalculation(result);
                    }));
                }

                return(GetUnauthorizedResponse());
            }
        }
Beispiel #5
0
        /// <summary>
        /// Checks auth headers to see if auth token was provided
        /// </summary>
        /// <param name="authHeaders"></param>
        /// <returns>true if token is present</returns>
        protected bool CheckAuthorizationHeadersForClientAndToken(AuthorizationHeaders authHeaders)
        {
            if (authHeaders == null)
            {
                _logger.LogError("No authorization headers received");
                return(false);
            }

            if (string.IsNullOrWhiteSpace(authHeaders.AuthorizationToken))
            {
                _logger.LogError("No authorization token received");
                return(false);
            }

            if (string.IsNullOrWhiteSpace(authHeaders.ClientId))
            {
                _logger.LogError("No client id received");
                return(false);
            }

            return(true);
        }