TykTechnologies / tyk

Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols
Other
9.65k stars 1.08k forks source link

Graphql: Gateway crashes on internal data source with auth protection #3138

Closed ilijabojanovic closed 4 years ago

ilijabojanovic commented 4 years ago

Branch/Environment/Version

Describe the bug Gateway crashed on processing request

Reproduction steps Steps to reproduce the behavior:

  1. Start gateway
  2. Send post request to graphql api
curl --location --request POST 'https://tyk-gateway:8181/testql/' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"{\n    testing{\n        id\n        ip\n    }\n}","variables":{}}'

Actual behavior Gateway will crash

Expected behavior Gateway should not crash

Screenshots/Video

Logs (debug mode or log file):

Jun 09 23:23:07]  INFO main: API reload complete
[Jun 09 23:23:09]  INFO api: Retrieved key detail. key=****In0= status=ok
[Jun 09 23:23:09]  INFO api: Retrieved key detail. key=****In0= status=ok
[Jun 09 23:23:17]  WARN pub-sub: Reconnecting storage: Redis is either down or ws not configured
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x4cfffaa]

goroutine 423 [running]:
github.com/TykTechnologies/tyk/gateway.Monitor.Check(0xc0001a23c0, 0xc005119e00, 0x78)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/monitor.go:42 +0x24a
github.com/TykTechnologies/tyk/gateway.(*RateLimitAndQuotaCheck).ProcessRequest(0xc0003ef5c0, 0x5796480, 0xc0053522c0, 0xc0050f4a00, 0x0, 0x0, 0x0, 0xc000819910, 0x400e818)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/mw_rate_limiting.go:165 +0x245
github.com/TykTechnologies/tyk/gateway.TraceMiddleware.ProcessRequest(0x57adae0, 0xc0003ef5c0, 0x5796480, 0xc0053522c0, 0xc0050f4a00, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:73 +0x2c1
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:137 +0x556
net/http.HandlerFunc.ServeHTTP(0xc0011fffc0, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca140, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca180, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca1c0, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca200, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca240, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca280, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.createMiddleware.func1.1(0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/middleware.go:172 +0xf3a
net/http.HandlerFunc.ServeHTTP(0xc0015ca2c0, 0x5796480, 0xc0053522c0, 0xc0050f4a00)
    /usr/local/go/src/net/http/server.go:2007 +0x44
github.com/TykTechnologies/tyk/gateway.(*TykRoundTripper).RoundTrip(0xc001a1b980, 0xc0050f4a00, 0xc001a1b980, 0x0, 0x0)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/gateway/reverse_proxy.go:689 +0x330
net/http.send(0xc0050f4a00, 0x57799a0, 0xc001a1b980, 0x0, 0x0, 0x0, 0xc0007e4108, 0x203000, 0x1, 0x0)
    /usr/local/go/src/net/http/client.go:250 +0x43a
net/http.(*Client).send(0xc001dcd980, 0xc0050f4a00, 0x0, 0x0, 0x0, 0xc0007e4108, 0x0, 0x1, 0x50e7d40)
    /usr/local/go/src/net/http/client.go:174 +0xfa
net/http.(*Client).do(0xc001dcd980, 0xc0050f4a00, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/http/client.go:641 +0x3ce
net/http.(*Client).Do(...)
    /usr/local/go/src/net/http/client.go:509
github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution/datasource.(*HttpJsonDataSource).Resolve(0xc000bf1da0, 0x579ddc0, 0xc000297710, 0x5796c40, 0xc00117f4c0, 0x5779580, 0xc0002975f0, 0x0, 0x0, 0x0)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution/datasource/datasource_http_json.go:294 +0x7dd
github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution.(*SingleFetch).Fetch(0xc00117f3e0, 0x579d200, 0xc0000de008, 0xc0009fa9f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution/execution.go:423 +0x291
github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution.(*ParallelFetch).Fetch.func1(0xc0050eafe0, 0x12, 0xc00510a9f0, 0xc000bc7f20, 0x577a760, 0xc00117f3e0, 0x579d200, 0xc0000de008, 0xc0009fa9f0, 0x0, ...)
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution/execution.go:450 +0xd8
created by github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution.(*ParallelFetch).Fetch
    /Users/ilijabojanovic/work/src/github.com/TykTechnologies/tyk/vendor/github.com/jensneuse/graphql-go-tools/pkg/execution/execution.go:449 +0x102

Api def:

{
    "id": "5edfec6f9633d70973f58351",
    "name": "testql",
    "slug": "testql",
    "listen_port": 0,
    "protocol": "",
    "enable_proxy_protocol": false,
    "api_id": "6ef5d9ceb7694acc7efd62ff78315404",
    "org_id": "5dcaa92a9633d70d2397e557",
    "use_keyless": true,
    "use_oauth2": false,
    "use_openid": false,
    "openid_options": {
        "providers": [],
        "segregate_by_client": false
    },
    "oauth_meta": {
        "allowed_access_types": [],
        "allowed_authorize_types": [],
        "auth_login_redirect": ""
    },
    "auth": {
        "use_param": false,
        "param_name": "",
        "use_cookie": false,
        "cookie_name": "",
        "auth_header_name": "Authorization",
        "use_certificate": false,
        "validate_signature": false,
        "signature": {
            "algorithm": "",
            "header": "",
            "secret": "",
            "allowed_clock_skew": 0,
            "error_code": 0,
            "error_message": ""
        }
    },
    "auth_configs": {
        "authToken": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "basic": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "coprocess": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "hmac": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "jwt": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "oauth": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        },
        "oidc": {
            "use_param": false,
            "param_name": "",
            "use_cookie": false,
            "cookie_name": "",
            "auth_header_name": "Authorization",
            "use_certificate": false,
            "validate_signature": false,
            "signature": {
                "algorithm": "",
                "header": "",
                "secret": "",
                "allowed_clock_skew": 0,
                "error_code": 0,
                "error_message": ""
            }
        }
    },
    "use_basic_auth": false,
    "basic_auth": {
        "disable_caching": false,
        "cache_ttl": 0,
        "extract_from_body": false,
        "body_user_regexp": "",
        "body_password_regexp": ""
    },
    "use_mutual_tls_auth": false,
    "client_certificates": [],
    "upstream_certificates": {},
    "pinned_public_keys": {},
    "enable_jwt": false,
    "use_standard_auth": false,
    "use_go_plugin_auth": false,
    "enable_coprocess_auth": false,
    "jwt_signing_method": "",
    "jwt_source": "",
    "jwt_identity_base_field": "",
    "jwt_client_base_field": "",
    "jwt_policy_field_name": "",
    "jwt_default_policies": [],
    "jwt_issued_at_validation_skew": 0,
    "jwt_expires_at_validation_skew": 0,
    "jwt_not_before_validation_skew": 0,
    "jwt_skip_kid": false,
    "jwt_scope_to_policy_mapping": {},
    "jwt_scope_claim_name": "",
    "notifications": {
        "shared_secret": "",
        "oauth_on_keychange_url": ""
    },
    "enable_signature_checking": false,
    "hmac_allowed_clock_skew": -1,
    "hmac_allowed_algorithms": [],
    "request_signing": {
        "is_enabled": false,
        "secret": "",
        "key_id": "",
        "algorithm": "",
        "header_list": [],
        "certificate_id": "",
        "signature_header": ""
    },
    "base_identity_provided_by": "",
    "definition": {
        "location": "header",
        "key": "x-api-version",
        "strip_path": false
    },
    "version_data": {
        "not_versioned": true,
        "default_version": "",
        "versions": {
            "Default": {
                "name": "Default",
                "expires": "",
                "paths": {
                    "ignored": [],
                    "white_list": [],
                    "black_list": []
                },
                "use_extended_paths": true,
                "extended_paths": {},
                "global_headers": {},
                "global_headers_remove": [],
                "global_response_headers": {},
                "global_response_headers_remove": [],
                "ignore_endpoint_case": false,
                "global_size_limit": 0,
                "override_target": ""
            }
        }
    },
    "uptime_tests": {
        "check_list": [],
        "config": {
            "expire_utime_after": 0,
            "service_discovery": {
                "use_discovery_service": false,
                "query_endpoint": "",
                "use_nested_query": false,
                "parent_data_path": "",
                "data_path": "",
                "port_data_path": "",
                "target_path": "",
                "use_target_list": false,
                "cache_timeout": 60,
                "endpoint_returns_list": false
            },
            "recheck_wait": 0
        }
    },
    "proxy": {
        "preserve_host_header": false,
        "listen_path": "/testql/",
        "target_url": "",
        "disable_strip_slash": false,
        "strip_listen_path": true,
        "enable_load_balancing": false,
        "target_list": [],
        "check_host_against_uptime_tests": false,
        "service_discovery": {
            "use_discovery_service": false,
            "query_endpoint": "",
            "use_nested_query": false,
            "parent_data_path": "",
            "data_path": "",
            "port_data_path": "",
            "target_path": "",
            "use_target_list": false,
            "cache_timeout": 0,
            "endpoint_returns_list": false
        },
        "transport": {
            "ssl_insecure_skip_verify": false,
            "ssl_ciphers": [],
            "ssl_min_version": 0,
            "ssl_force_common_name_check": false,
            "proxy_url": ""
        }
    },
    "disable_rate_limit": false,
    "disable_quota": false,
    "custom_middleware": {
        "pre": [],
        "post": [],
        "post_key_auth": [],
        "auth_check": {
            "name": "",
            "path": "",
            "require_session": false,
            "raw_body_only": false
        },
        "response": [],
        "driver": "",
        "id_extractor": {
            "extract_from": "",
            "extract_with": "",
            "extractor_config": {}
        }
    },
    "custom_middleware_bundle": "",
    "cache_options": {
        "cache_timeout": 60,
        "enable_cache": true,
        "cache_all_safe_requests": false,
        "cache_response_codes": [],
        "enable_upstream_cache_control": false,
        "cache_control_ttl_header": "",
        "cache_by_headers": []
    },
    "session_lifetime": 0,
    "active": true,
    "internal": false,
    "auth_provider": {
        "name": "",
        "storage_engine": "",
        "meta": {}
    },
    "session_provider": {
        "name": "",
        "storage_engine": "",
        "meta": {}
    },
    "event_handlers": {
        "events": {}
    },
    "enable_batch_request_support": false,
    "enable_ip_whitelisting": false,
    "allowed_ips": [],
    "enable_ip_blacklisting": false,
    "blacklisted_ips": [],
    "dont_set_quota_on_create": false,
    "expire_analytics_after": 0,
    "response_processors": [],
    "CORS": {
        "enable": false,
        "allowed_origins": [],
        "allowed_methods": [],
        "allowed_headers": [],
        "exposed_headers": [],
        "allow_credentials": false,
        "max_age": 24,
        "options_passthrough": false,
        "debug": false
    },
    "domain": "",
    "certificates": [],
    "do_not_track": false,
    "tags": [],
    "enable_context_vars": false,
    "config_data": {},
    "tag_headers": [],
    "global_rate_limit": {
        "rate": 0,
        "per": 0
    },
    "strip_auth_data": false,
    "enable_detailed_recording": false,
    "graphql": {
        "enabled": true,
        "execution_mode": "executionEngine",
        "schema": "type Mutation {\n  default: String\n}\n\ntype Qa {\n  id: ID\n  ip: String\n  user_agent: String\n}\n\ntype Query {\n  testing: Qa\n}\n\ntype Subscription {\n  default: String\n}\n",
        "type_field_configurations": [
            {
                "type_name": "Qa",
                "field_name": "id",
                "mapping": {
                    "disabled": false,
                    "path": "uuid"
                },
                "data_source": {
                    "kind": "HTTPJSONDataSource",
                    "data_source_config": {
                        "url": "http://httpbin.org/uuid",
                        "method": "GET",
                        "body": "",
                        "headers": [],
                        "default_type_name": "ID",
                        "status_code_type_name_mappings": [
                            {
                                "status_code": 200,
                                "type_name": ""
                            }
                        ]
                    }
                }
            },
            {
                "type_name": "Qa",
                "field_name": "ip",
                "mapping": {
                    "disabled": false,
                    "path": "origin"
                },
                "data_source": {
                    "kind": "TykRESTDataSource",
                    "data_source_config": {
                        "url": "tyk://0853785e1d804ccb4ce2182d32c313a2/ip",
                        "method": "GET",
                        "body": "",
                        "headers": [
                            {
                                "key": "Authorization",
                                "value": "eyJvcmciOiI1ZGNhYTkyYTk2MzNkNzBkMjM5N2U1NTciLCJpZCI6ImQ2NmUxNjRhNDJhNTQ4ZWY4Njk5MjIxOWUzZDMzMjAyIiwiaCI6Im11cm11cjY0In0="
                            }
                        ],
                        "default_type_name": "String",
                        "status_code_type_name_mappings": [
                            {
                                "status_code": 200,
                                "type_name": ""
                            }
                        ]
                    }
                }
            }
        ],
        "playground": {
            "enabled": true,
            "path": ""
        }
    }
}

Configuration (tyk config file):

{
    "listen_address": "",
    "listen_port": 8181,
    "secret": "352d20ee67be67f6340b4c0605b044b7",
    "node_secret": "352d20ee67be67f6340b4c0605b044b7",
    "template_path": "templates",
    "tyk_js_path": "./js",
    "middleware_path": "middleware",
    "policies": {
        "policy_source": "service",
        "policy_connection_string": "http://www.tyk-test.com:3000",
        "policy_record_name": "tyk_policies",
        "allow_explicit_policy_id": false
    },
    "use_db_app_configs": true,
    "db_app_conf_options": {
        "connection_string": "http://www.tyk-test.com:3000",
        "node_is_segmented": false,
        "tags": null
    },
    "disable_dashboard_zeroconf": false,
    "app_path": "apps/",
    "storage": {
        "type": "redis",
        "host": "localhost",
        "port": 6379,
        "username": "",
        "password": "",
        "database": 0,
        "timeout": 0,
        "optimisation_max_idle": 2000,
        "optimisation_max_active": 4000,
        "enable_cluster": false,
        "use_ssl": false,
        "ssl_insecure_skip_verify": false
    },
    "enable_separate_cache_store": false,
    "cache_storage": {
        "type": "redis",
        "host": "localhost",
        "port": 6379,
        "hosts": null,
        "username": "",
        "password": "",
        "database": 0,
        "timeout": 5,
        "optimisation_max_idle": 0,
        "optimisation_max_active": 0,
        "enable_cluster": false,
        "use_ssl": false,
        "ssl_insecure_skip_verify": false
    },
    "enable_analytics": true,
    "analytics_config": {
        "type": "mongo",
        "ignored_ips": [],
        "enable_detailed_recording": false,
        "enable_geo_ip": true,
        "geo_ip_db_path": "./GeoLite2-City.mmdb",
        "normalise_urls": {
            "enabled": true,
            "normalise_uuids": true,
            "normalise_numbers": true,
            "custom_patterns": null
        },
        "pool_size": 0,
        "records_buffer_size": 0,
        "storage_expiration_time": 60
    },
    "health_check": {
        "enable_health_checks": false,
        "health_check_value_timeouts": 0
    },
    "optimisations_use_async_session_write": false,
    "session_update_pool_size": 0,
    "session_update_buffer_size": 0,
    "allow_master_keys": false,
    "hash_keys": true,
    "hash_key_function": "murmur64",
    "suppress_redis_signal_reload": false,
    "suppress_default_org_store": false,
    "use_redis_log": true,
    "sentry_code": "",
    "use_sentry": false,
    "use_syslog": false,
    "use_graylog": false,
    "use_logstash": false,
    "graylog_network_addr": "",
    "logstash_network_addr": "",
    "syslog_transport": "",
    "logstash_transport": "",
    "syslog_network_addr": "",
    "statsd_connection_string": "",
    "statsd_prefix": "",
    "enforce_org_data_age": true,
    "enforce_org_data_detail_logging": true,
    "enforce_org_quotas": true,
    "experimental_process_org_off_thread": true,
    "enable_non_transactional_rate_limiter": true,
    "enable_sentinel_rate_limiter": false,
    "enable_redis_rolling_limiter": false,
    "enable_http_profiler": true,
    "management_node": false,
    "monitor": {
        "enable_trigger_monitors": true,
        "configuration": {
            "method": "POST",
            "target_path": "https://webhook.site/da526a32-ac09-40e3-ae09-c221bbc915b5",
            "template_path": "./templates/monitor_template.json",
            "header_map": null,
            "event_timeout": 0
        },
        "global_trigger_limit": 80,
        "monitor_user_keys": true,
        "monitor_org_keys": true
    },
    "oauth_refresh_token_expire": 0,
    "oauth_token_expire": 0,
    "oauth_token_expired_retain_period": 0,
    "oauth_redirect_uri_separator": "",
    "slave_options": {
        "use_rpc": false,
        "use_ssl": false,
        "ssl_insecure_skip_verify": false,
        "connection_string": "",
        "rpc_key": "",
        "api_key": "",
        "enable_rpc_cache": false,
        "bind_to_slugs": false,
        "disable_keyspace_sync": false,
        "group_id": "",
        "call_timeout": 0,
        "ping_timeout": 0,
        "rpc_pool_size": 0
    },
    "disable_virtual_path_blobs": false,
    "local_session_cache": {
        "disable_cached_session_state": false,
          "cached_session_timeout": 5,
          "cached_session_eviction": 10
    },
    "http_server_options": {
        "override_defaults": false,
        "read_timeout": 0,
        "write_timeout": 0,
        "use_ssl": true,
        "use_ssl_le": false,
        "ssl_insecure_skip_verify": true,
        "enable_websockets": true,
        "certificates": [
            {
                "domain_name": "*.tyk-test.com",
                "cert_file": "./server.crt",
                "key_file": "./server.key"
            }
        ],
        "ssl_certificates": null,
        "server_name": "www.tyk-test.com",
        "min_version": 0,
        "flush_interval": 0,
        "skip_url_cleaning": true,
        "skip_target_path_escaping": true,
        "ssl_ciphers": null
    },
    "service_discovery": {
        "default_cache_timeout": 0
    },
    "proxy_close_connections": false,
    "close_connections": true,
    "auth_override": {
        "force_auth_provider": false,
        "auth_provider": {
            "name": "",
            "storage_engine": "",
            "meta": null
        },
        "force_session_provider": false,
        "session_provider": {
            "name": "",
            "storage_engine": "",
            "meta": null
        }
    },
    "uptime_tests": {
        "disable": false,
        "config": {
            "failure_trigger_sample_size": 2,
            "time_wait": 5,
            "checker_pool_size": 50,
            "enable_uptime_analytics": true
        }
    },
    "hostname": "",
    "enable_api_segregation": false,
    "control_api_hostname": "",
    "enable_custom_domains": true,
    "enable_jsvm": true,
    "jsvm_timeout": 10,
    "coprocess_options": {
        "enable_coprocess": true,
        "coprocess_grpc_server": "",
        "python_path_prefix": "",
        "python_version": ""
    },
    "hide_generator_header": false,
    "event_handlers": {},
    "event_trigers_defunct": null,
    "pid_file_location": "",
    "allow_insecure_configs": true,
    "public_key_path": "/Users/ilijabojanovic/work/src/github.com/TykTechnologies/pubkey.pem",
    "close_idle_connections": false,
    "drl_notification_frequency": 0,
    "global_session_lifetime": 0,
    "force_global_session_lifetime": false,
    "bundle_base_url": "http://192.168.1.50:8000/",
    "bundle_insecure_skip_verify": true,
    "enable_bundle_downloader": true,
    "allow_remote_config": true,
    "legacy_enable_allowance_countdown": false,
    "max_idle_connections": 400,
    "max_idle_connections_per_host": 0,
    "max_conn_time": 0,
    "reload_wait_time": 0,
    "proxy_ssl_insecure_skip_verify": true,
    "proxy_ssl_min_version": 0,
    "proxy_ssl_ciphers": null,
    "proxy_default_timeout": 10,
    "proxy_ssl_disable_renegotiation": false,
    "log_level": "info",
    "control_api_port": 0,
    "enable_websockets": true,
    "security": {
        "private_certificate_encoding_secret": "",
        "control_api_use_mutual_tls": false,
        "pinned_public_keys": null,
        "certificates": {
            "apis": null,
            "upstream": null,
            "control_api": null,
            "dashboard_api": null,
            "mdcb_api": null
        }
    },
    "enable_key_logging": false,
    "newrelic": {
        "app_name": "",
        "license_key": ""
    },
    "health_check_endpoint_name": "ilija",
    "version_header": "",
    "enable_hashed_keys_listing": true,
    "min_token_length": 0,
    "disable_regexp_cache": false,
    "regexp_cache_expire": 0,
    "disable_ports_whitelist": true,
    "ports_whitelist": {
        "http": {
          "ranges": [
            {
              "from": 8000,
              "to": 9000
            }
          ]
        },
        "tcp": {
          "ranges": [
            {
              "from": 7001,
              "to": 7900
            }
          ]
        },
        "tls": {
          "ports": [
            6000,
            6015
          ]
        }
      },
    "kv": {
        "consul": {
            "address": "",
            "scheme": "",
            "datacenter": "",
            "http_auth": {
                "username": "",
                "password": ""
            },
            "wait_time": 0,
            "token": "",
            "tls_config": {
                "address": "",
                "ca_file": "",
                "ca_path": "",
                "cert_file": "",
                "key_file": "",
                "insecure_skip_verify": false
            }
        },
        "vault": {
            "address": "http://127.0.0.1:8200",
            "agent_address": "http://127.0.0.1:8200",
            "max_retries": 0,
            "timeout": 0,
            "token": "s.WLCvGh8jvffxCAZ7zAxZPPa5",
            "kv_version": 0
        }
    },
    "secrets": null
}

Additional context Add any other context about the problem here.

ilijabojanovic commented 4 years ago

Fixed