Skip to content
Snippets Groups Projects
Commit aac2a7f3 authored by Yoan VALLET's avatar Yoan VALLET
Browse files

Merge branch 'cozy-healthcheck-envvar' into 'master'

Cozy healthcheck envvar

See merge request pocs/cozy/cozy-oauth-proxy!2
parents 07714725 bc1f5dec
Branches
Tags
1 merge request!2Cozy healthcheck envvar
Pipeline #5772 passed
No preview for this file type
......@@ -3,6 +3,7 @@ package main
import (
"encoding/json"
"flag"
"io"
"io/ioutil"
"net/http"
"net/url"
......@@ -14,7 +15,9 @@ import (
)
var (
httpPort = flag.Int("http_port", 80, "HTTP port to serve on (defaults to 80)")
httpPort = flag.Int("http_port", LookupEnvOrInt("HTTP_PORT", 80), "HTTP port to serve on (defaults to 80)")
logLevel = flag.String("loglevel", LookupEnvOrString("LOGLEVEL", "debug"), "log level (debug, info, warning, error) (defaults to debug)")
redirectURI = flag.String("redirect_uri", LookupEnvOrString("REDIRECT_URI", "https://oauth-proxy.wf.alpha.grandlyon.com/redirect"), "Redirect URI (defaults to https://oauth-proxy.wf.alpha.grandlyon.com/redirect)")
)
type TokenResponse struct {
......@@ -28,6 +31,24 @@ type TokenResponse struct {
UsagePointId string `json:"usage_points_id"`
}
func LookupEnvOrString(key string, defaultVal string) string {
if val, ok := os.LookupEnv(key); ok {
return val
}
return defaultVal
}
func LookupEnvOrInt(key string, defaultVal int) int {
if val, ok := os.LookupEnv(key); ok {
v, err := strconv.Atoi(val)
if err != nil {
log.Fatalf("LookupEnvOrInt[%s]: %v", key, err)
}
return v
}
return defaultVal
}
func main() {
// Parse the flags
flag.Parse()
......@@ -41,12 +62,28 @@ func main() {
FullTimestamp: true,
TimestampFormat: "2006-01-02 15:04:05",
})
// TODO(SBL): Level should be configurable via flag
//log.SetLevel(log.WarnLevel)
log.SetLevel(log.DebugLevel)
// Configure log level
switch strings.ToLower(*logLevel) {
case "error":
log.SetLevel(log.ErrorLevel)
case "warning":
log.SetLevel(log.WarnLevel)
case "info":
log.SetLevel(log.InfoLevel)
case "debug":
log.SetLevel(log.DebugLevel)
default:
log.SetLevel(log.DebugLevel)
log.Fatalf("Unknown logging level %s. Choose between debug, info, warning or error.", *logLevel)
}
mux := http.NewServeMux()
log.Info("Server started")
log.Infof("Starting Server on port %d\n", *httpPort)
mux.HandleFunc("/healthcheck", func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "OK\n")
})
mux.HandleFunc("/auth", func(w http.ResponseWriter, r *http.Request) {
log.Debug("New auth request")
......@@ -56,7 +93,6 @@ func main() {
clientId := query.Get("client_id")
state := query.Get("state")
cozyOrigin := query.Get("redirect_uri") // here we use the redirect_uri param to transmit our stack url
redirectUri := "https://oauth-proxy.wf.alpha.grandlyon.com/redirect"
responseType := "code"
// DEV API
......@@ -64,7 +100,7 @@ func main() {
// PROD API
authURL := "https://mon-compte-particulier.enedis.fr/dataconnect/v1/oauth2/authorize"
redirectUrl := authURL + "?client_id=" + clientId + "&duration=P6M&redirect_uri=" + redirectUri + "&response_type=" + responseType + "&state=" + state + "-" + cozyOrigin
redirectUrl := authURL + "?client_id=" + clientId + "&duration=P6M&redirect_uri=" + *redirectURI + "&response_type=" + responseType + "&state=" + state + "-" + cozyOrigin
log.Debug("Redirect to - ", redirectUrl)
http.Redirect(w, r, redirectUrl, 302)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment