public async Task <ID2LPrincipal> AuthenticateAsync(
            string bearerToken
            )
        {
            if (string.IsNullOrEmpty(bearerToken))
            {
                return(ANONYMOUS_PRINCIPAL);
            }

            IAccessToken accessToken = await m_accessTokenValidator
                                       .ValidateAsync(bearerToken)
                                       .ConfigureAwait(false);

            ID2LPrincipal principal = new D2LPrincipal(accessToken);

            return(principal);
        }
        private async Task <ID2LPrincipal> AuthenticateHelper(
            string bearerToken
            )
        {
            if (string.IsNullOrEmpty(bearerToken))
            {
                return(ANONYMOUS_PRINCIPAL);
            }

            IAccessToken accessToken = await m_accessTokenValidator
                                       .ValidateAsync(bearerToken)
                                       .SafeAsync();

            ID2LPrincipal principal = new D2LPrincipal(accessToken);

            return(principal);
        }