Compare commits

...
14 Commits
Author SHA1 Message Date
djpbessems 6851467d46 Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
Container & Helm chart / Semantic Release (Dry-run) (push) Successful in 33s
Container & Helm chart / Helm chart (push) Successful in 17s
Container & Helm chart / Container image (push) Successful in 1m46s
Container & Helm chart / Semantic Release (push) Successful in 34s
2024-03-11 15:20:09 +11:00
djpbessems aceb53efe9 fix: Refactor to use filesystem storage instead of cookies 2024-03-11 15:20:08 +11:00
semantic-release-bot 0be0c38fb1 chore(release): 1.0.23 [skip ci]
## [1.0.23](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.22...v1.0.23) (2024-03-11)

### Bug Fixes

* Register type with gob interface ([cdbfe64](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/cdbfe64f5c04ac7d19ae14ca9ff826d2990dc065))
2024-03-11 04:09:55 +00:00
djpbessems d946069f6a Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
Container & Helm chart / Semantic Release (Dry-run) (push) Successful in 34s
Container & Helm chart / Helm chart (push) Successful in 21s
Container & Helm chart / Container image (push) Successful in 1m41s
Container & Helm chart / Semantic Release (push) Successful in 37s
2024-03-11 15:07:02 +11:00
djpbessems cdbfe64f5c fix: Register type with gob interface 2024-03-11 15:07:00 +11:00
semantic-release-bot 6eb24cc601 chore(release): 1.0.22 [skip ci]
## [1.0.22](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.21...v1.0.22) (2024-03-11)

### Bug Fixes

* Add multiple verbose debugging ([d6148f2](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/d6148f289aa113f8325813e76bd039342987337a))
2024-03-11 03:58:54 +00:00
djpbessems 2b61ef233d Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
Container & Helm chart / Semantic Release (Dry-run) (push) Successful in 32s
Container & Helm chart / Helm chart (push) Successful in 23s
Container & Helm chart / Container image (push) Successful in 1m51s
Container & Helm chart / Semantic Release (push) Successful in 35s
2024-03-11 14:55:51 +11:00
djpbessems d6148f289a fix: Add multiple verbose debugging 2024-03-11 14:55:49 +11:00
semantic-release-bot e1987287e3 chore(release): 1.0.21 [skip ci]
## [1.0.21](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.20...v1.0.21) (2024-03-11)

### Bug Fixes

* Add verbose debugging after session store ([1e0ddbc](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/1e0ddbc0eea9f97839954ac6b24c99feb4be6447))
2024-03-11 03:44:55 +00:00
djpbessems 98d2a6c3b2 Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
Container & Helm chart / Semantic Release (Dry-run) (push) Successful in 33s
Container & Helm chart / Helm chart (push) Successful in 24s
Container & Helm chart / Container image (push) Successful in 1m41s
Container & Helm chart / Semantic Release (push) Successful in 37s
2024-03-11 14:42:03 +11:00
djpbessems 1e0ddbc0ee fix: Add verbose debugging after session store 2024-03-11 14:42:01 +11:00
semantic-release-bot 22607d3601 chore(release): 1.0.20 [skip ci]
## [1.0.20](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.19...v1.0.20) (2024-03-11)

### Bug Fixes

* Add more debug logging ([63f764d](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/63f764d1c56c5f66c15ef9cdf9139fabd4c3d8a4))
2024-03-11 03:35:13 +00:00
djpbessems a553e9e93a Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
Container & Helm chart / Semantic Release (Dry-run) (push) Successful in 33s
Container & Helm chart / Helm chart (push) Successful in 26s
Container & Helm chart / Container image (push) Successful in 1m42s
Container & Helm chart / Semantic Release (push) Successful in 36s
2024-03-11 14:32:18 +11:00
djpbessems 63f764d1c5 fix: Add more debug logging 2024-03-11 14:32:17 +11:00
2 changed files with 91 additions and 45 deletions
+28
View File
@@ -1,3 +1,31 @@
## [1.0.23](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.22...v1.0.23) (2024-03-11)
### Bug Fixes
* Register type with gob interface ([cdbfe64](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/cdbfe64f5c04ac7d19ae14ca9ff826d2990dc065))
## [1.0.22](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.21...v1.0.22) (2024-03-11)
### Bug Fixes
* Add multiple verbose debugging ([d6148f2](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/d6148f289aa113f8325813e76bd039342987337a))
## [1.0.21](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.20...v1.0.21) (2024-03-11)
### Bug Fixes
* Add verbose debugging after session store ([1e0ddbc](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/1e0ddbc0eea9f97839954ac6b24c99feb4be6447))
## [1.0.20](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.19...v1.0.20) (2024-03-11)
### Bug Fixes
* Add more debug logging ([63f764d](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/63f764d1c56c5f66c15ef9cdf9139fabd4c3d8a4))
## [1.0.19](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.18...v1.0.19) (2024-03-11) ## [1.0.19](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.18...v1.0.19) (2024-03-11)
+63 -45
View File
@@ -2,6 +2,7 @@ package main
import ( import (
"context" "context"
"encoding/gob"
"log" "log"
"net/http" "net/http"
"os" "os"
@@ -27,52 +28,11 @@ var config = oauth2.Config{
Scopes: []string{"email", "openid", "profile", "user.read"}, Scopes: []string{"email", "openid", "profile", "user.read"},
} }
var sessionStore = sessions.NewCookieStore([]byte("xDDBjhYwyndZty3exGNq2ahE8wHRCR4DfdCJCSoWXAYncfWw2UQDH63QcJ9CkrGx")) var sessionStore = sessions.NewFilesystemStore("", []byte("xDDBjhYwyndZty3exGNq2ahE8wHRCR4DfdCJCSoWXAYncfWw2UQDH63QcJ9CkrGx"))
func rootHandler(w http.ResponseWriter, r *http.Request) { func init() {
session, _ := sessionStore.Get(r, "spamasaurusRex") // Register the oauth2.Token type with gob
if token, ok := session.Values["token"]; ok { gob.Register(&oauth2.Token{})
log.Println(spew.Sdump(token))
w.Write([]byte("Token retrieved from session"))
} else {
url := config.AuthCodeURL("state", oauth2.AccessTypeOffline)
http.Redirect(w, r, url, http.StatusFound)
}
}
func callbackHandler(w http.ResponseWriter, r *http.Request) {
// Handle the callback after successful authentication
token, err := config.Exchange(r.Context(), r.URL.Query().Get("code"))
if err != nil {
if retrieveErr, ok := err.(*oauth2.RetrieveError); ok {
log.Println(retrieveErr.ErrorDescription + " (" + retrieveErr.ErrorCode + ")")
}
http.Error(w, "Error exchanging code for token", http.StatusInternalServerError)
return
}
// Store the token in the session
session, err := sessionStore.Get(r, "spamasaurusRex")
if err != nil {
log.Println(spew.Sdump(err))
return
}
session.Values["token"] = token
session.Save(r, w)
// w.Write([]byte("Authentication successful!"))
url := "https://alias.spamasaurus.com"
http.Redirect(w, r, url, http.StatusSeeOther)
}
func healthHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func readinessHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
} }
func main() { func main() {
@@ -102,6 +62,64 @@ func main() {
waitForShutdown(srv) waitForShutdown(srv)
} }
func rootHandler(w http.ResponseWriter, r *http.Request) {
session, err := sessionStore.Get(r, "spamasaurusRex")
if err != nil {
log.Println(spew.Sdump(err))
return
}
if token, ok := session.Values["token"]; ok {
log.Println(spew.Sdump(token))
w.Write([]byte("Token retrieved from session"))
} else {
log.Println(spew.Sdump(session))
url := config.AuthCodeURL("state", oauth2.AccessTypeOffline)
http.Redirect(w, r, url, http.StatusFound)
}
}
func callbackHandler(w http.ResponseWriter, r *http.Request) {
// Handle the callback after successful authentication
token, err := config.Exchange(r.Context(), r.URL.Query().Get("code"))
if err != nil {
if retrieveErr, ok := err.(*oauth2.RetrieveError); ok {
log.Println(retrieveErr.ErrorDescription + " (" + retrieveErr.ErrorCode + ")")
}
http.Error(w, "Error exchanging code for token", http.StatusInternalServerError)
return
}
// Store the token in the session
session, err := sessionStore.Get(r, "spamasaurusRex")
if err != nil {
log.Println(spew.Sdump(err))
return
}
session.Values["token"] = token
err = session.Save(r, w)
if err != nil {
log.Println(spew.Sdump(err))
return
}
log.Println(spew.Sdump(session))
// w.Write([]byte("Authentication successful!"))
url := "https://alias.spamasaurus.com"
http.Redirect(w, r, url, http.StatusSeeOther)
}
func healthHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func readinessHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func waitForShutdown(srv *http.Server) { func waitForShutdown(srv *http.Server) {
interruptChan := make(chan os.Signal, 1) interruptChan := make(chan os.Signal, 1)
signal.Notify(interruptChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) signal.Notify(interruptChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)