guilhermevillote commented on issue #12349:
URL: https://github.com/apache/apisix/issues/12349#issuecomment-2986451687
Thanks for the suggestion!
I checked ctx.matched_route, and it does include the route metadata, but the
plugins field only shows a shallow reference like this:
```json
"matched_route": {
"value": {
"id": "398c7dd4",
"priority": 0,
"upstream_id": "52c52e36",
"name": "apisix-ingress_admin-teste_main",
"hosts": [
"xxx"
],
"labels": {
"managed-by": "apisix-ingress-controller",
},
"uris": [
"/admin/teste/*"
],
"desc": "Created by apisix-ingress-controller, DO NOT
modify it manually",
"status": 1,
"plugins": {
"acl": "table: 0x78bafb3d9410",
"proxy-rewrite": "table: 0x78baf5abada0",
"key-auth": "table: 0x78bafb3d9318"
},
"update_time": 1750219153,
"create_time": 1750218190
},
"orig_modifiedIndex": 1167,
"has_domain": false,
"createdIndex": 1141,
"modifiedIndex": 1167,
"clean_handlers": {},
"key": "/apisix/routes/398c7dd4"
},
```
So I don’t have direct access to the actual plugin config values — just Lua
table references as strings.
Is there a recommended way to dereference these or access the actual plugin
configuration defined on the route from within the plugin logic?
Again, my use case is:
I need to access the route-level plugin configuration, even when the plugin
is also configured on the consumer — which is where the current conf value
comes from during the access phase.
I considered doing a manual fetch of the route-level plugin configuration
based on something like the plugin ID or Lua table reference, but I’m concerned
this could introduce unnecessary latency into the request path.
I also tried using the rewrite phase with type = "auth" (to skip
rewrite_in_consumer), and this does provide access to the route-level plugin
config.
However, I’m concerned that this might mix responsibilities — according to
the docs, type = "auth" is intended for authentication plugins, whereas mine is
for authorization. It doesn’t handle consumer attachment itself, but instead
relies on the ctx.consumer set by authentication plugins like key-auth.
Is there a built-in or efficient way to retrieve the route-level plugin
config within the access phase?
Or is using the rewrite phase with type = "auth" the recommended approach in
this case?
Thanks again!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]