apache / apache/apisix-java-plugin-runner

help request: How to dynamic add/remove headers in "ext-plugin" with Java Runner

Aperta
#219 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
152
Fork
102
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Description

Is it possible to dynamic to add headers in the ext-plugin (We implement a java based plugin with "apisix-runner-starter, 0.4.0" )?
the methods we tried this method:
` public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain `
...
` request.getHeaders().put("abc","abc");
request.getHeaders().put("567","565");`
...

Expectation:
upstream api receives the combined headers (original + dynamic).
client 10 headers --> apisix ext-plugin(java runner) add 2 headers=> 12 headers -> upstream, 12 headers

Actual
upstream api still receives the original headers
client 10 headers --> apisix ext-plugin(java runner) add 2 headers=> 12 headers -> upstream, 10 headers

We noticed that line 223 in the "RpcCallHandler" in the "org.apache.apisix.plugin.runner.handler" ;package
still using the original request, even the ext-plugin add or remove the header

Typically, data transmission after plugin should expose interface to implementer. but currently, plugin only could change the header value, could not dynamically add / remove headers

thx

### Environment

- APISIX version (run `apisix version`): 3.0
- Operating system (run `uname -a`): Centos7
- OpenResty / Nginx version (run `openresty -V` or `nginx -V`):
- etcd version, if relevant (run `curl http://127.0.0.1:9090/v1/server_info`): 3.5.x
- APISIX Dashboard version, if relevant:
- Plugin runner version, for issues related to plugin runners: apisix-runner-starter, 0.4.0
- LuaRocks version, for installation issues (run `luarocks --version`):

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.