package api import ( "fmt" "github.com/gin-gonic/gin" "os" "strings" ) func Auth() gin.HandlerFunc { if hasProfile("basic-auth") { return gin.BasicAuth(loadAuth()) } panic("keycloak support not implemented") } func hasProfile(value string) bool { profileOptions := strings.Split(os.Getenv("PROFILE"), ",") for _, option := range profileOptions { if option == value { return true } } return false } func loadAuth() map[string]string { credentials := envMustExist("AUTH_KEY") values := strings.Split(credentials, ":") return map[string]string{values[0]: values[1]} } func envMustExist(env string) string { if value, exists := os.LookupEnv(env); !exists { panic(fmt.Sprintf("env variable '%s' not defined", env)) } else { return value } }