public bool Authenticate(HttpRequestMessage request)
        {
            _log.Debug("Attempting to authenticate...");
            var authHeader = request.Headers.Authorization;

            if (authHeader == null)
            {
                return(false);
            }
            var credentialParts = GetCredentialParts(authHeader);

            if (credentialParts.Length != ExpectedCredentialCount)
            {
                return(false);
            }
            return(_basicSecurityService.SetPrincipal(credentialParts[UsernameIndex], credentialParts[PasswordIndex]));
        }
Exemplo n.º 2
0
        public bool Authenticate(HttpRequestMessage request)
        {
            long tntId = 0;

            _log.Debug("Attempting to authenticate...");
            var authHeader = request.Headers.Authorization;

            if (authHeader == null)
            {
                return(false);
            }

            var credentialParts = GetCredentialParts(authHeader);

            if (credentialParts.Length != ExpectedCredentialCount)
            {
                return(false);
            }

            // --- finding TenantID in route ---
            if (request.RequestUri.Segments.Length >= 5)
            {
                if (request.RequestUri.Segments[3].ToLower() == Constants.SpecialSegments.Tnt + "/")
                {
                    // Tenant found. Determining Rights
                    if (long.TryParse(request.RequestUri.Segments[4], out tntId))
                    {
                    }
                }
                if (request.RequestUri.Segments[3].ToLower() == Constants.SpecialSegments.Common + "/")
                {
                    tntId = -1; // Special number for use [/api/v1/common...] section. In this case rights will be just a [Member]
                }
            }
            // ------------------------------
            return(_basicSecurityService.SetPrincipal(credentialParts[UsernameIndex], credentialParts[PasswordIndex], _basicSecurityService.SetTenantIdToMainTenantIdIfIts0(tntId)));
        }