Details
-
Bug
-
Resolution: Done
-
Major
-
2.8 GA
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
+
Description
When using APICAST_PATH_ROUTING=1 with the following configuration:
{ "services": [{ "backend_authentication_type": "service_token", "buyer_plan_change_permission": "request", "buyer_key_regenerate_enabled": true, "default_service_plan_id": null, "name": "Service 01", "backend_authentication_value": "3fada0b8cceff8fd54d489e9cde622f2c568bc29495f87ab0e3e0e2c2407f7dc", "txt_api": null, "notification_settings": null, "admin_support_email": null, "logo_content_type": null, "mandatory_app_key": true, "system_name": "service_01", "state": "incomplete", "id": 1, "proxiable?": true, "display_provider_keys": false, "default_application_plan_id": null, "terms": null, "end_user_registration_required": true, "support_email": "admin@example.com", "account_id": 1, "tenant_id": 2, "txt_features": null, "buyers_manage_keys": true, "buyers_manage_apps": true, "oneline_description": null, "custom_keys_enabled": true, "credit_card_support_email": null, "proxy": { "error_headers_no_match": "text\/plain; charset=us-ascii", "error_no_match": "No Mapping Rule matched", "backend": { "endpoint": "https:\/\/su1.3scale.net", "host": "su1.3scale.net" }, "authentication_method": "1", "error_status_limits_exceeded": 429, "production_domain": "localhost", "error_headers_limits_exceeded": "text\/plain; charset=us-ascii", "created_at": "2019-08-16T16:04:00-05:00", "valid?": true, "hostname_rewrite_for_sandbox": "echo-api.3scale.net", "error_headers_auth_failed": "text\/plain; charset=us-ascii", "error_status_auth_missing": 403, "auth_user_key": "api_key", "oidc_issuer_type": "keycloak", "error_status_auth_failed": 403, "auth_app_key": "app_key", "id": 170732, "sandbox_endpoint": "http:\/\/localhost:8080", "staging_domain": "localhost", "service_id": 1, "endpoint": "https:\/\/api.esar.io:443", "api_test_path": "\/uat\/sartoken\/domiciliacion\/registrardomiciliacion", "api_test_success": null, "service_backend_version": "1", "updated_at": "2019-09-06T12:37:12-05:00", "auth_app_id": "app_id", "apicast_configuration_driven": true, "error_limits_exceeded": "Usage limit exceeded", "error_status_no_match": 404, "tenant_id": 2, "hostname_rewrite": "", "error_auth_missing": "Authentication parameters missing", "deployed_at": null, "hosts": [ "localhost", "localhost" ], "api_backend": "https:\/\/echo-api.3scale.net:443", "oauth_login_url": null, "error_headers_auth_missing": "text\/plain; charset=us-ascii", "credentials_location": "query", "endpoint_port": 443, "error_auth_failed": "Authentication failed", "oidc_issuer_endpoint": null, "lock_version": 11, "proxy_rules": [{ "owner_id": 2, "id": 2, "delta": 1, "updated_at": "2019-08-16T16:06:31-05:00", "position": 1, "metric_id": 1, "tenant_id": 2, "created_at": "2019-08-16T16:04:00-05:00", "proxy_id": 170732, "pattern": "\/x\/y\/z", "http_method": "GET", "parameters": {}, "redirect_url": null, "last": false, "owner_type": "Proxy", "metric_system_name": "hits", "querystring_parameters": {} }, { "owner_id": 2, "id": 3, "delta": 1, "updated_at": "2019-08-16T16:06:31-05:00", "position": 2, "metric_id": 1, "tenant_id": 2, "created_at": "2019-08-16T16:06:31-05:00", "proxy_id": 1, "pattern": "\/a\/b", "http_method": "POST", "parameters": {}, "redirect_url": null, "last": false, "owner_type": "Proxy", "metric_system_name": "hitsUAT", "querystring_parameters": {} } ], "policy_chain": [{ "name": "apicast", "configuration": {}, "version": "builtin" }], "secret_token": "Shared_secret_sent_from_proxy_to_API_backend_c1b4e7803099ac62" }, "buyer_can_select_plan": false, "description": "This is a description", "deployment_option": "self_managed", "kubernetes_service_link": null, "logo_file_size": null, "backend_version": "1", "default_end_user_plan_id": null, "act_as_product": false }, { "tech_support_email": null, "txt_support": null, "draft_name": "", "backend_authentication_type": "service_token", "buyer_plan_change_permission": "request", "buyer_key_regenerate_enabled": true, "default_service_plan_id": null, "created_at": "2020-04-26T00:41:55-05:00", "name": "Service 02", "backend_authentication_value": "de57c2f6f5ca23a338bc215436aea97b12611feab48347dff94f05fb218b7135", "txt_api": null, "notification_settings": null, "buyer_can_select_plan": false, "logo_content_type": null, "mandatory_app_key": true, "system_name": "service_02", "state": "incomplete", "id": 3, "proxiable?": true, "display_provider_keys": false, "default_application_plan_id": null, "end_user_registration_required": 1, "default_end_user_plan_id": null, "support_email": "admin@example.com", "account_id": 2, "tenant_id": 2, "txt_features": null, "buyers_manage_keys": true, "buyers_manage_apps": true, "oneline_description": null, "admin_support_email": null, "deployment_option": "self_managed", "proxy": { "error_headers_no_match": "text\/plain; charset=us-ascii", "error_no_match": "No Mapping Rule matched", "backend": { "endpoint": "https:\/\/su1.3scale.net", "host": "su1.3scale.net" }, "authentication_method": "1", "error_status_limits_exceeded": 429, "production_domain": "localhost", "error_headers_limits_exceeded": "text\/plain; charset=us-ascii", "created_at": "2020-04-26T00:41:55-05:00", "valid?": true, "service_id": 2, "error_headers_auth_failed": "text\/plain; charset=us-ascii", "error_status_auth_missing": 403, "auth_user_key": "api_key", "secret_token": "Shared_secret_sent_from_proxy_to_API_backend_af8b10a3a09d667a", "oidc_issuer_type": "keycloak", "error_status_auth_failed": 403, "lock_version": 4, "auth_app_key": "app_key", "id": 2, "sandbox_endpoint": "http:\/\/localhost:8080", "staging_domain": "localhost", "api_test_path": "\/", "error_headers_auth_missing": "text\/plain; charset=us-ascii", "api_test_success": null, "error_status_no_match": 404, "service_backend_version": "1", "updated_at": "2020-05-02T19:30:51-05:00", "hostname_rewrite": "", "apicast_configuration_driven": true, "auth_app_id": "app_id", "error_limits_exceeded": "Usage limit exceeded", "tenant_id": 2, "endpoint": "http:\/\/localhost:8080", "oauth_login_url": null, "deployed_at": null, "error_auth_missing": "Authentication parameters missing", "api_backend": "https:\/\/echo-api.3scale.net:443", "hosts": [ "localhost", "localhost" ], "error_auth_failed": "Authentication failed", "credentials_location": "query", "endpoint_port": 443, "hostname_rewrite_for_sandbox": "echo-api.3scale.net", "oidc_issuer_endpoint": null, "policy_chain": [{ "name": "apicast", "configuration": {}, "version": "builtin" }], "proxy_rules": [{ "owner_id": 2, "id": 3, "delta": 1, "updated_at": "2020-05-02T19:30:51-05:00", "position": 1, "metric_id": 2, "tenant_id": 2, "created_at": "2020-04-26T00:41:55-05:00", "proxy_id": 2, "pattern": "\/foo\/bar?baz={baz}", "http_method": "GET", "parameters": {}, "redirect_url": null, "last": false, "owner_type": "Proxy", "metric_system_name": "hits", "querystring_parameters": { "baz": "{baz}" } }], "description": "descriptio", "credit_card_support_email": null, "kubernetes_service_link": null, "terms": null, "logo_file_size": null, "backend_version": "1", "logo_file_name": null, "act_as_product": false } } ] }
The gateway fails to match the mapping rule /foo/bar?baz=baz because here it makes use of an empty table as args and it fails with querystring_params(): check query params baz value missing 'baz'