Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
0be0c38fb1 | |||
d946069f6a | |||
cdbfe64f5c | |||
6eb24cc601 | |||
2b61ef233d | |||
d6148f289a | |||
e1987287e3 | |||
98d2a6c3b2 | |||
1e0ddbc0ee | |||
22607d3601 | |||
a553e9e93a | |||
63f764d1c5 | |||
19ddd10164 | |||
97aae89ce9 | |||
1af505196a |
35
CHANGELOG.md
35
CHANGELOG.md
@ -1,3 +1,38 @@
|
||||
## [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)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Add error handling to session store ([1af5051](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/commit/1af505196ad217b91169cdac771de2ec0a35482f))
|
||||
|
||||
## [1.0.18](http://gitea.gitea.svc.cluster.local:3000/djpbessems/ContainerImage.SpamasaurusRex/compare/v1.0.17...v1.0.18) (2024-03-10)
|
||||
|
||||
|
||||
|
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/gob"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
@ -29,45 +30,9 @@ var config = oauth2.Config{
|
||||
|
||||
var sessionStore = sessions.NewCookieStore([]byte("xDDBjhYwyndZty3exGNq2ahE8wHRCR4DfdCJCSoWXAYncfWw2UQDH63QcJ9CkrGx"))
|
||||
|
||||
func rootHandler(w http.ResponseWriter, r *http.Request) {
|
||||
session, _ := sessionStore.Get(r, "spamasaurusRex")
|
||||
if token, ok := session.Values["token"]; ok {
|
||||
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, _ := sessionStore.Get(r, "spamasaurusRex")
|
||||
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 init() {
|
||||
// Register the oauth2.Token type with gob
|
||||
gob.Register(&oauth2.Token{})
|
||||
}
|
||||
|
||||
func main() {
|
||||
@ -97,6 +62,64 @@ func main() {
|
||||
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) {
|
||||
interruptChan := make(chan os.Signal, 1)
|
||||
signal.Notify(interruptChan, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
|
||||
|
Reference in New Issue
Block a user