summaryrefslogtreecommitdiff
path: root/internal/gitlabnet/accessverifier/client.go
diff options
context:
space:
mode:
authorIgor Drozdov <idrozdov@gitlab.com>2022-07-01 11:02:59 +0000
committerIgor Drozdov <idrozdov@gitlab.com>2022-07-01 11:02:59 +0000
commit0d7ef238cb8c05eabaec85e62bec70a40147d1df (patch)
tree9179705f9e8b6ee309d456323fbaedaa70141c7e /internal/gitlabnet/accessverifier/client.go
parent01f4e022c04b29b896eb383e6e6a33f96a6beeb1 (diff)
parent9b60ce49460876d0e599f2fec65f02856930dbcd (diff)
downloadgitlab-shell-0d7ef238cb8c05eabaec85e62bec70a40147d1df.tar.gz
Merge branch 'sshd-forwarded-for' into 'main'
Pass original IP from PROXY requests to internal API calls See merge request gitlab-org/gitlab-shell!665
Diffstat (limited to 'internal/gitlabnet/accessverifier/client.go')
-rw-r--r--internal/gitlabnet/accessverifier/client.go18
1 files changed, 1 insertions, 17 deletions
diff --git a/internal/gitlabnet/accessverifier/client.go b/internal/gitlabnet/accessverifier/client.go
index c46a16f..adeccd6 100644
--- a/internal/gitlabnet/accessverifier/client.go
+++ b/internal/gitlabnet/accessverifier/client.go
@@ -3,7 +3,6 @@ package accessverifier
import (
"context"
"fmt"
- "net"
"net/http"
pb "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
@@ -86,7 +85,7 @@ func (c *Client) Verify(ctx context.Context, args *commandargs.Shell, action com
request.KeyId = args.GitlabKeyId
}
- request.CheckIp = parseIP(args.Env.RemoteAddr)
+ request.CheckIp = gitlabnet.ParseIP(args.Env.RemoteAddr)
response, err := c.client.Post(ctx, "/allowed", request)
if err != nil {
@@ -117,18 +116,3 @@ func parse(hr *http.Response, args *commandargs.Shell) (*Response, error) {
func (r *Response) IsCustomAction() bool {
return r.StatusCode == http.StatusMultipleChoices
}
-
-func parseIP(remoteAddr string) string {
- // The remoteAddr field can be filled by:
- // 1. An IP address via the SSH_CONNECTION environment variable
- // 2. A host:port combination via the PROXY protocol
- ip, _, err := net.SplitHostPort(remoteAddr)
-
- // If we don't have a port or can't parse this address for some reason,
- // just return the original string.
- if err != nil {
- return remoteAddr
- }
-
- return ip
-}