internal /* internal for test */ void ValidateResponseFromBroker(MsalTokenResponse msalTokenResponse)
        {
            _logger.Info(LogMessages.CheckMsalTokenResponseReturnedFromBroker);
            if (!string.IsNullOrEmpty(msalTokenResponse.AccessToken))
            {
                _logger.Info(
                    "Success. Broker response contains an access token");
                return;
            }

            if (msalTokenResponse.Error != null)
            {
                _logger.Info(
                    LogMessages.ErrorReturnedInBrokerResponse(msalTokenResponse.Error));

                throw MsalServiceExceptionFactory.FromBrokerResponse(msalTokenResponse.Error,
                                                                     MsalErrorMessage.BrokerResponseError + msalTokenResponse.ErrorDescription,
                                                                     string.IsNullOrEmpty(msalTokenResponse.SubError)?
                                                                     MsalError.UnknownBrokerError : msalTokenResponse.SubError,
                                                                     msalTokenResponse.CorrelationId,
                                                                     msalTokenResponse.HttpResponse);
            }


            _logger.Info(LogMessages.UnknownErrorReturnedInBrokerResponse);
            throw new MsalServiceException(MsalError.BrokerResponseReturnedError, MsalErrorMessage.BrokerResponseReturnedError, null);
        }
示例#2
0
        internal /* internal for test */ void ValidateResponseFromBroker(MsalTokenResponse msalTokenResponse)
        {
            _logger.Info(LogMessages.CheckMsalTokenResponseReturnedFromBroker);
            if (msalTokenResponse.AccessToken != null)
            {
                _logger.Info("Success. Response contains an access token. ");
                return;
            }

            if (msalTokenResponse.Error != null)
            {
                _logger.Info(
                    LogMessages.ErrorReturnedInBrokerResponse(msalTokenResponse.Error));

                if (msalTokenResponse.Error == BrokerResponseConst.AndroidNoTokenFound ||
                    msalTokenResponse.Error == BrokerResponseConst.AndroidNoAccountFound ||
                    msalTokenResponse.Error == BrokerResponseConst.AndroidInvalidRefreshToken)
                {
                    throw new MsalUiRequiredException(msalTokenResponse.Error, msalTokenResponse.ErrorDescription);
                }

                throw MsalServiceExceptionFactory.FromBrokerResponse(msalTokenResponse,
                                                                     MsalErrorMessage.BrokerResponseError + msalTokenResponse.ErrorDescription);
            }

            _logger.Info(LogMessages.UnknownErrorReturnedInBrokerResponse);
            throw new MsalServiceException(MsalError.BrokerResponseReturnedError, MsalErrorMessage.BrokerResponseReturnedError, null);
        }