mirror of
https://github.com/paralus/paralus.git
synced 2026-03-05 18:40:18 +00:00
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package gateway
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
// Rafay Gateway annotations
|
|
const (
|
|
GatewayRequest = "rafay-gateway-request"
|
|
GatewayURL = "rafay-gateway-url"
|
|
GatewayRSID = "rafay-gateway-rsid"
|
|
GatewayAPIKey = "rafay-gateway-apikey"
|
|
GatewayMethod = "rafay-gateway-method"
|
|
rafaySessionCookie = "rsid"
|
|
rafayAPIKeyHeader = "X-RAFAY-API-KEYID"
|
|
UserAgent = "rafay-gateway-user-agent"
|
|
Host = "rafay-gateway-host"
|
|
RemoteAddr = "rafay-gateway-remote-addr"
|
|
)
|
|
|
|
// rafayGatewayAnnotator adds rafay gateway specific annotations
|
|
var rafayGatewayAnnotator = func(ctx context.Context, r *http.Request) metadata.MD {
|
|
return metadata.New(map[string]string{
|
|
GatewayRequest: "true",
|
|
GatewayURL: r.URL.EscapedPath(),
|
|
GatewayRSID: func() string {
|
|
sid, err := r.Cookie(rafaySessionCookie)
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return sid.Value
|
|
}(),
|
|
GatewayAPIKey: r.Header.Get(rafayAPIKeyHeader),
|
|
GatewayMethod: r.Method,
|
|
UserAgent: r.UserAgent(),
|
|
Host: r.Host,
|
|
RemoteAddr: r.RemoteAddr,
|
|
})
|
|
}
|