diff options
| author | mo khan <mo@mokhan.ca> | 2025-07-02 17:04:45 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-07-02 17:04:45 -0600 |
| commit | 9df901bbc89d5017b0423e15ddad2f7365b6f3ff (patch) | |
| tree | ea5089000238d0cdc1ee4f01c8fd6f5c3a988089 /cmd/authzd | |
| parent | 4e0af71b314015626e95ede8d6576b63e3a3dc0b (diff) | |
chore: provide port in authzd connection and connects with tls credentials
Diffstat (limited to 'cmd/authzd')
| -rw-r--r-- | cmd/authzd/main.go | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/cmd/authzd/main.go b/cmd/authzd/main.go index 32a7cc7..ff942e7 100644 --- a/cmd/authzd/main.go +++ b/cmd/authzd/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "crypto/x509" "net" "os" "os/signal" @@ -13,6 +14,7 @@ import ( "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/authz" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" "google.golang.org/grpc" + "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" ) @@ -20,9 +22,10 @@ func main() { logger := log.New(os.Stdout, log.Fields{"app": "authzd"}) ctx := logger.WithContext(context.Background()) + host := env.Fetch("AUTHZD_HOST", "localhost:50051") connection, err := grpc.NewClient( - env.Fetch("AUTHZD_HOST", "localhost:50051"), - grpc.WithTransportCredentials(insecure.NewCredentials()), + host, + grpc.WithTransportCredentials(credentialsFor(ctx, host)), ) if err != nil { pls.LogErrorNow(ctx, err) @@ -44,3 +47,22 @@ func main() { socket := x.Must(net.Listen("tcp", ":10003")) pls.LogErrorNow(ctx, server.Serve(socket)) } + +func credentialsFor(ctx context.Context, host string) credentials.TransportCredentials { + _, port, err := net.SplitHostPort(host) + if err != nil { + pls.LogError(ctx, err) + return insecure.NewCredentials() + } + + if port != "443" { + return insecure.NewCredentials() + } + + pool, err := x509.SystemCertPool() + if err != nil { + return insecure.NewCredentials() + } + + return credentials.NewClientTLSFromCert(pool, "") +} |
