-
Bug
-
Resolution: Done
-
Major
-
2.8 GA
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
Not Started
-
+
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'