[GitHub] [apisix-go-plugin-runner] GhangZh commented on issue #53: request help: support http proxy

2021-12-13 Thread GitBox


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

2021-12-13 Thread GitBox


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

2021-12-13 Thread GitBox


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

2021-12-12 Thread GitBox


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

2021-12-10 Thread GitBox


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

2021-12-10 Thread GitBox


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