summaryrefslogtreecommitdiff
path: root/cmd/authzd/main.go
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-02 17:04:45 -0600
committermo khan <mo@mokhan.ca>2025-07-02 17:04:45 -0600
commit9df901bbc89d5017b0423e15ddad2f7365b6f3ff (patch)
treeea5089000238d0cdc1ee4f01c8fd6f5c3a988089 /cmd/authzd/main.go
parent4e0af71b314015626e95ede8d6576b63e3a3dc0b (diff)
chore: provide port in authzd connection and connects with tls credentials
Diffstat (limited to 'cmd/authzd/main.go')
-rw-r--r--cmd/authzd/main.go26
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, "")
+}