[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-993229066 > Thanks, change to r.Header().Set("X-Resp-A6-Runner", "Go") solved my problem -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-993210163 > Currently, setting response data will mean stopping the current process and returning immediately without proxying the request to upstream. How should I change to proxy the request to upstream ? I've tried both severless-plugin and go-plugin-runner plugins to support forward-auth,But none of these are currently met, And not having this plugin would cause all our services not being accessible -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-993134192 > I found that after I use core.response.set_header(k, v) then the response body of the service I requested was empty. -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-992085667 I wrote a demo, but I found that the response body is empty ,For example, if I add this plugin to a.com, and I request a.com, the plugin will request b.com and do the processing, now the processing is successful but there is no response content from a.com. ```bash package plugins import ( "encoding/json" "fmt" pkgHTTP "github.com/apache/apisix-go-plugin-runner/pkg/http" "github.com/apache/apisix-go-plugin-runner/pkg/log" "github.com/apache/apisix-go-plugin-runner/pkg/plugin" "github.com/sirupsen/logrus" "net/http" "time" ) func init() { err := plugin.RegisterPlugin({}) if err != nil { log.Fatalf("failed to register plugin ForwardAuth: %s", err) } } // ForwardAuth is a demo to show how to return data directly instead of proxying // it to the upstream. type ForwardAuth struct { } type ForwardAuthConf struct { Body string `json:"body"` } func (p *ForwardAuth) Name() string { return "forward-auth" } func (p *ForwardAuth) ParseConf(in []byte) (interface{}, error) { conf := ForwardAuthConf{} err := json.Unmarshal(in, ) return conf, err } func (p *ForwardAuth) Filter(conf interface{}, w http.ResponseWriter, r pkgHTTP.Request) { req, err := http.NewRequest("GET", "http://xxx;, nil) if err != nil { logrus.Errorf("send request failed err:%v", err) return } //req.Header.Set("Cookie", r.Header().Get("Cookie")) client := http.Client{ Timeout: 5 * time.Second, } resp, err := client.Do(req) if err != nil { logrus.Errorf("get response failed err:%v", err) return } if resp == nil { logrus.Errorf("response is nil") return } defer resp.Body.Close() if len(resp.Header) > 0 { for k, v := range resp.Header { if v != nil { w.Header().Set(k, v[0]) } } } w.Header().Add("X-Resp-A6-Runner", "Go") return } ``` ![image](https://user-images.githubusercontent.com/92301646/145749863-5dfe9dd4-4e2a-483c-a86c-deff3d2bca86.png) ![image](https://user-images.githubusercontent.com/92301646/145750006-b43fc78c-31c5-4cc4-a8e8-eedc04efb54a.png) -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-990758372 > > 1. you can get/set the header via Request.Header, see https://pkg.go.dev/github.com/apache/apisix-go-plugin-runner@v0.2.0/pkg/http#Header > 2. you can stop the request with headers, see https://github.com/apache/apisix-go-plugin-runner/blob/195bd64e4d0edeb471a43016f0c3f0dad59f86b9/cmd/go-runner/plugins/say.go#L61 > 3. currently, there is no way to set response header without stopping the request (the `core.response.set_header(k, v)` in your example). Maybe you can open an issue to track it? I want to proxy all the responses. Is there any way to do that? -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy
GhangZh commented on issue #53: URL: https://github.com/apache/apisix-go-plugin-runner/issues/53#issuecomment-990757998 > I want to proxy all the responses. Is there any way to do that? -- 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: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org