12 Commits

Author SHA1 Message Date
8f1654a3cf chore(release): 1.0.24 [skip ci]
## [1.0.24](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.23...v1.0.24) (2024-03-11)

### Bug Fixes

* Refactor to use filesystem storage instead of cookies ([aceb53e](aceb53efe9))
2024-03-11 04:23:07 +00:00
6851467d46 Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
All checks were successful
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
aceb53efe9 fix: Refactor to use filesystem storage instead of cookies 2024-03-11 15:20:08 +11:00
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](cdbfe64f5c))
2024-03-11 04:09:55 +00:00
d946069f6a Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
All checks were successful
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
cdbfe64f5c fix: Register type with gob interface 2024-03-11 15:07:00 +11:00
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](d6148f289a))
2024-03-11 03:58:54 +00:00
2b61ef233d Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
All checks were successful
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
d6148f289a fix: Add multiple verbose debugging 2024-03-11 14:55:49 +11:00
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](1e0ddbc0ee))
2024-03-11 03:44:55 +00:00
98d2a6c3b2 Merge branch 'main' of https://code.spamasaurus.com/djpbessems/ContainerImage.SpamasaurusRex
All checks were successful
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
1e0ddbc0ee fix: Add verbose debugging after session store 2024-03-11 14:42:01 +11:00
2 changed files with 91 additions and 46 deletions

View File

@ -1,3 +1,31 @@
## [1.0.24](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.23...v1.0.24) (2024-03-11)
### Bug Fixes
* Refactor to use filesystem storage instead of cookies ([aceb53e](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/aceb53efe914ddc4ffd9c9ff3bad3917c138fd69))
## [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) ## [1.0.20](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.19...v1.0.20) (2024-03-11)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"context" "context"
"encoding/gob"
"log" "log"
"net/http" "net/http"
"os" "os"
@ -27,53 +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 {
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
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() {
@ -103,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)