From 5ff79cbec3a3bd4420f0e6f322f846c5d848ef27 Mon Sep 17 00:00:00 2001 From: Chakib Benziane Date: Fri, 5 Apr 2019 23:39:56 +0200 Subject: [PATCH] Fix cookie credentials bug, add prod mode --- api/handlers.go | 19 +++++++++++++++++++ api/routes.go | 12 +++++++++--- btc/price.go | 17 ++++++++++------- config/vars.go | 2 ++ docker-compose.yml | 1 + web/Caddyfile | 4 ++-- web/src/Upload.vue | 2 +- web/src/api.js | 12 ++++++------ 8 files changed, 50 insertions(+), 19 deletions(-) diff --git a/api/handlers.go b/api/handlers.go index ceec6df..f130ad4 100644 --- a/api/handlers.go +++ b/api/handlers.go @@ -57,6 +57,7 @@ func sessionHandler(c *gin.Context) { return } +// Was used by ln-charge func invoiceCbHandler(c *gin.Context) { invoice := ln.Invoice{} @@ -101,3 +102,21 @@ func invoiceCbHandler(c *gin.Context) { return } + +func downHandler(c *gin.Context) { + sess := sessions.Default(c) + + test := sess.Get("test") + log.Printf("%#v", test) + if test != nil { + sess.Clear() + sess.Save() + c.String(http.StatusOK, "I remember you") + } else { + sess.Set("test", 1) + sess.Save() + c.String(http.StatusOK, "i dont remember you") + } + + return +} diff --git a/api/routes.go b/api/routes.go index a793863..e9e8088 100644 --- a/api/routes.go +++ b/api/routes.go @@ -20,9 +20,9 @@ type API struct { func (api *API) Run() { // Get last session if it exists - api.router.GET("/api/session", sessionHandler) + api.router.GET("/a/session", sessionHandler) - uploadRoute := api.router.Group("/api/upload") + uploadRoute := api.router.Group("/a/u") { uploadRoute.POST("", UploadCtrl.New) uploadRoute.PUT(":id", UploadCtrl.Upload) @@ -31,6 +31,12 @@ func (api *API) Run() { uploadRoute.GET("/poll/:id", UploadCtrl.PollStatus) } + // Download route + downRoute := api.router.Group("/a/d") + { + downRoute.GET("t", downHandler) + } + // Websocket server //api.router.GET("/ws", ws.Serve) @@ -51,7 +57,7 @@ func NewAPI() *API { panic(err) } - router.Use(sessions.Sessions("bit4sat-session", sessionStore)) + router.Use(sessions.Sessions("bit4sat", sessionStore)) // // diff --git a/btc/price.go b/btc/price.go index 7bfabd6..bd2cb97 100644 --- a/btc/price.go +++ b/btc/price.go @@ -42,15 +42,18 @@ func getRate(currency string) (float64, error) { // TODO: remove on prod and use normal client // Used for connectivity problems - proxyUrl, err := url.Parse(config.HttpProxy) - if err != nil { - log.Fatal(err) - } + client := &http.Client{} + if config.Env == "dev" { - client := &http.Client{ - Transport: &http.Transport{ + proxyUrl, err := url.Parse(config.HttpProxy) + if err != nil { + log.Fatal(err) + } + + client.Transport = &http.Transport{ Proxy: http.ProxyURL(proxyUrl), - }, + } + } resp, err := client.Get(reqUri) diff --git a/config/vars.go b/config/vars.go index a95fa49..60a33de 100644 --- a/config/vars.go +++ b/config/vars.go @@ -13,6 +13,7 @@ const ( ) var ( + Env, StoragePath, ApiPort, ApiInterface, @@ -66,6 +67,7 @@ func init() { flag.StringVar(&HttpProxy, "http-proxy", "", "http proxy for clients") flag.StringVar(&ShortIdSalt, "short-id-salt", "bit4sat-23591", "hashid salt") + flag.StringVar(&Env, "env", "dev", "dev or prod") //log.Printf("locking macaroon to ip %s", LockMacaroonIp) diff --git a/docker-compose.yml b/docker-compose.yml index 6aca2a8..ca97439 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,7 @@ services: - SESSION_SECRET=Ai7fCy36UE5cb9wcmdAxxRXwYyQDsDMr6rYocA6Eava7pdiB29EusLbb9sTYWS1e - GRPC_SSL_CIPHER_SUITES="HIGH+ECDSA" - SHORT_ID_SALT=Czp6NtlGpt0ebzG1DuUND1nMftLUR77c + - ENV=dev # Used in case of ssl problems - HTTP_PROXY=http://tinyproxy:8888 diff --git a/web/Caddyfile b/web/Caddyfile index 1c97684..8499399 100644 --- a/web/Caddyfile +++ b/web/Caddyfile @@ -10,9 +10,9 @@ header / { } -proxy /d localhost:8880 -proxy /api localhost:8880 { +## API +proxy /a localhost:8880 { transparent } diff --git a/web/src/Upload.vue b/web/src/Upload.vue index 32428ad..a1e270c 100644 --- a/web/src/Upload.vue +++ b/web/src/Upload.vue @@ -1,5 +1,5 @@