Пример #1
0
        public string Decrypt(string encryptedString)
        {
            try
            {
                var    tokenBytes = Convert.FromBase64String(encryptedString);
                string decryptedToken;
                using (var aes = Aes.Create())
                {
                    aes.Key = _keyBytes;
                    aes.IV  = _ivBytes;

                    var decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
                    using (var mStream = new MemoryStream(tokenBytes))
                    {
                        using (var decryptoStream = new CryptoStream(mStream, decryptor, CryptoStreamMode.Read))
                        {
                            using (var streamReader = new StreamReader(decryptoStream))
                            {
                                decryptedToken = streamReader.ReadToEnd();
                            }
                        }
                    }
                }

                return(decryptedToken);
            }
            catch (Exception)
            {
                throw TokenExpiredException.ThrowTokenExpiredException();
            }
        }
        public static void WriteTokenExpired(this ILogger logger, TokenExpiredException exception)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            logger.LogWarning(exception, "[{name}/{id}] Invalid jwt token, TokenExpiredException",
                              Name, TokenExpired);
        }
Пример #3
0
        private string[] ParseToken(string tokenString)
        {
            var splitToken = tokenString.Split('|');

            if (splitToken.Length != TokenPartsCount)
            {
                throw TokenExpiredException.ThrowTokenExpiredException();
            }

            return(splitToken);
        }
Пример #4
0
        public static Neo4jException ParseServerException(string code, string message)
        {
            Neo4jException error;
            var            parts          = code.Split('.');
            var            classification = parts[1].ToLowerInvariant();

            switch (classification)
            {
            case "clienterror":
                if (AuthenticationException.IsAuthenticationError(code))
                {
                    error = new AuthenticationException(message);
                }
                else if (AuthorizationException.IsAuthorizationError(code))
                {
                    error = new AuthorizationException(message);
                }
                else if (ProtocolException.IsProtocolError(code))
                {
                    error = new ProtocolException(code, message);
                }
                else if (FatalDiscoveryException.IsFatalDiscoveryError(code))
                {
                    error = new FatalDiscoveryException(message);
                }
                else if (TokenExpiredException.IsTokenExpiredError(code))
                {
                    error = new TokenExpiredException(message);
                }
                else if (InvalidBookmarkException.IsInvalidBookmarkException(code))
                {
                    error = new InvalidBookmarkException(message);
                }
                else
                {
                    error = new ClientException(code, message);
                }

                break;

            case "transienterror":
                error = new TransientException(code, message);
                break;

            default:
                error = new DatabaseException(code, message);
                break;
            }

            return(error);
        }
Пример #5
0
        private void CheckTokenValidity(DomainToken token)
        {
            var databaseToken = _iUnitOfWork.TokenRepository.GetByGuid(token.Guid);

            if (databaseToken == null || databaseToken.IsExpired)
            {
                throw TokenExpiredException.ThrowTokenExpiredException();
            }
            if (DateTime.UtcNow - databaseToken.GenerationDate <= TimeSpan.FromDays(21))
            {
                return;
            }
            ExpireToken(token);
            throw TokenExpiredException.ThrowTokenExpiredException();
        }