@@ -5,6 +5,7 @@ import (
55 "fmt"
66 "log"
77 "math/rand"
8+ "net/http"
89 "os"
910 "runtime"
1011 "strings"
@@ -92,6 +93,7 @@ func main() {
9293 flagSet.String("acr-values", "http://idmanagement.gov/ns/assurance/loa/1", "acr values string: optional, used by login.gov")
9394 flagSet.String("jwt-key", "", "private key used to sign JWT: required by login.gov")
9495 flagSet.String("pubjwk-url", "", "JWK pubkey access endpoint: required by login.gov")
96+ flagSet.Bool("gcp-healthchecks", false, "Enable GCP healthcheck endpoints")
9597
9698 flagSet.Parse(os.Args[1:])
9799
@@ -139,8 +141,14 @@ func main() {
139141
140142 rand.Seed(time.Now().UnixNano())
141143
144+ var myhandler http.Handler
145+ if opts.GCPHealthChecks {
146+ myhandler = gcpHealthcheck(LoggingHandler(os.Stdout, oauthproxy, opts.RequestLogging, opts.RequestLoggingFormat))
147+ } else {
148+ myhandler = LoggingHandler(os.Stdout, oauthproxy, opts.RequestLogging, opts.RequestLoggingFormat)
149+ }
142150 s := &Server{
143− Handler: LoggingHandler(os.Stdout, oauthproxy, opts.RequestLogging, opts.RequestLoggingFormat),
151+ Handler: myhandler,
144152 Opts: opts,
145153 }
146154 s.ListenAndServe()