APIcast icon indicating copy to clipboard operation
APIcast copied to clipboard

Issue with disabling auth cache via policy

Open philipgough opened this issue 5 years ago • 0 comments

Perhaps this is an issue with my configuration:

Using the following config I was attempting to disable the auth cache as described in the caching policy schema

{
  "id": 1,
  "services": [
    {
      "id": 2555417764324,
      "backend_version": "1",
      "backend_authentication_type": "service_token",
      "backend_authentication_value": "redacted",
      "proxy": {
        "policy_chain": [{ "name": "apicast.policy.caching", "configuration": { "caching_type": "none"}}],
        "api_backend": "https://echo-api.3scale.net:443",
        "auth_app_key": "app_key",
        "auth_app_id": "app_id",
        "auth_user_key": "user_key",
        "credentials_location": "query",
        "error_auth_failed": "Authentication failed",
        "error_limits_exceeded": "Limits exceeded",
        "error_auth_missing": "Authentication parameters missing",
        "error_status_auth_failed": 403,
        "error_headers_auth_failed": "text/plain; charset=us-ascii",
        "error_status_limits_exceeded": 429,
        "error_headers_limits_exceeded": "text/plan; charset=us-ascii",
        "error_status_auth_missing": 403,
        "error_headers_auth_missing": "text/plain; charset=us-ascii",
        "error_no_match": "No Mapping Rule matched",
        "error_status_no_match": 404,
        "error_headers_no_match": "text/plain; charset=us-ascii",
        "secret_token": "Shared_secret_sent_from_proxy_to_API_backend",
        "hostname_rewrite": null,
        "oauth_login_url": null,
        "hosts": [
          "localhost",
          "127.0.0.1"
        ],
        "backend": {
          "endpoint": "http://docker.for.mac.host.internal:3000",
          "host": "docker.for.mac.host.internal"
        },
        "proxy_rules": [
          {
            "id": 481727,
            "proxy_id": 110538,
            "http_method": "GET",
            "pattern": "/productpage",
            "metric_id": 2555418138963,
            "metric_system_name": "hits",
            "delta": 1,
            "tenant_id": 2445582571513,
            "created_at": "2019-06-07T09:10:01Z",
            "updated_at": "2019-09-16T11:29:21Z",
            "redirect_url": null,
            "position": 1,
            "last": false,
            "owner_id": 110538,
            "owner_type": "Proxy"
          },
          {
            "id": 547704,
            "proxy_id": 110538,
            "http_method": "GET",
            "pattern": "/get",
            "metric_id": 2555418138963,
            "metric_system_name": "hits",
            "delta": 1,
            "tenant_id": 2445582571513,
            "created_at": "2019-12-18T16:40:59Z",
            "updated_at": "2019-12-18T16:57:08Z",
            "redirect_url": null,
            "position": 2,
            "last": false,
            "owner_id": 110538,
            "owner_type": "Proxy"
          }
        ]
      }
    }
  ]
}
Current Result

With this config I get no JSON response that I received without adding the policy_chain field and nested policy. I don't get an error, just a 200 and empty response. Rate limits aren't hit.

Expected Result

To get the following response:

{
  "method": "GET",
  "path": "/get",
  "args": "user_key=redacted",
  "body": "",
  "headers": {
    "HTTP_VERSION": "HTTP/1.1",
    "HTTP_HOST": "echo-api.3scale.net",
    "HTTP_ACCEPT": "*/*",
    "HTTP_USER_AGENT": "curl/7.54.0",
    "HTTP_X_3SCALE_PROXY_SECRET_TOKEN": "Shared_secret_sent_from_proxy_to_API_backend",
    "HTTP_X_REAL_IP": "172.17.0.1",
    "HTTP_X_FORWARDED_FOR": "37.228.233.51, 10.0.101.161",
    "HTTP_X_FORWARDED_HOST": "echo-api.3scale.net",
    "HTTP_X_FORWARDED_PORT": "443",
    "HTTP_X_FORWARDED_PROTO": "https",
    "HTTP_FORWARDED": "for=10.0.101.161;host=echo-api.3scale.net;proto=https"
  },
  "uuid": "f7aaac6a-7ee6-4bfe-a67f-343c3dfa28f3"
}

and to see rate limits respected and to see no cache hit messages in apicast logs

Additional Information

When I removed the policy_chain and set the deprecated env var APICAST_BACKEND_CACHE_HANDLER=none I got the result I expected

philipgough avatar Jun 11 '20 09:06 philipgough