From: Julien Andrieux Date: Fri, 6 Oct 2017 08:23:36 +0000 (+0200) Subject: Add DialOption with metadata on client connection X-Git-Url: https://git.halfball.org/?a=commitdiff_plain;h=0d9b3b394b90f4ad2fd2270e656f2e46ce4ed3ee;p=demo-grpc.git Add DialOption with metadata on client connection --- diff --git a/client/main.go b/client/main.go index 5df1cdd..d571fef 100644 --- a/client/main.go +++ b/client/main.go @@ -9,6 +9,25 @@ import ( "google.golang.org/grpc/credentials" ) +// Authentication holds the login/password +type Authentication struct { + Login string + Password string +} + +// GetRequestMetadata gets the current request metadata +func (a *Authentication) GetRequestMetadata(context.Context, ...string) (map[string]string, error) { + return map[string]string{ + "login": a.Login, + "password": a.Password, + }, nil +} + +// RequireTransportSecurity indicates whether the credentials requires transport security +func (a *Authentication) RequireTransportSecurity() bool { + return true +} + func main() { var conn *grpc.ClientConn @@ -18,8 +37,14 @@ func main() { log.Fatalf("could not load tls cert: %s", err) } + // Setup the login/pass + auth := Authentication{ + Login: "john", + Password: "doe", + } + // Initiate a connection with the server - conn, err = grpc.Dial("localhost:7777", grpc.WithTransportCredentials(creds)) + conn, err = grpc.Dial("localhost:7777", grpc.WithTransportCredentials(creds), grpc.WithPerRPCCredentials(&auth)) if err != nil { log.Fatalf("did not connect: %s", err) }