7 Commits
3 changed files with 14 additions and 7 deletions

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/janishutz/oidclogin
go 1.27.1
go 1.26.0
require (
github.com/coreos/go-oidc/v3 v3.21.0
+6 -4
View File
@@ -48,7 +48,7 @@ func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_
if issuer == "" || clientID == "" || clientSecret == "" {
if stubs_on_unconfigured {
log.Println("[JHID] WARNING: OIDC not set up due to missing environment variables. Falling back to stubs")
startStubs(r)
startStubs(r, check_middleware)
return
} else {
log.Fatal("[JHID] One or more requried environment variables are missing. See docs for more information")
@@ -56,12 +56,12 @@ func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_
}
provider, err := oidc.NewProvider(context.Background(), issuer)
verifier = *provider.Verifier(&oidc.Config{ClientID: clientID})
if err != nil {
log.Fatal("[JHID] Provider resolution failed with error", err)
}
verifier = *provider.Verifier(&oidc.Config{ClientID: clientID})
config = oauth2.Config{
ClientID: clientID,
ClientSecret: clientSecret,
@@ -72,10 +72,10 @@ func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_
r.GET("/auth/v2/login", loginHandler)
r.GET("/auth/v2/verify", callbackHandler)
check_finalizer := func(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) }
if check_middleware == nil {
r.GET("/auth/v2/check", EnsureLogin(false), check_finalizer)
} else {
log.Println("[JHID] Custom check middleware enabled")
r.GET("/auth/v2/check", EnsureLogin(false), check_middleware, check_finalizer)
}
r.GET("/auth/v2/logout", logoutHandler)
@@ -83,6 +83,8 @@ func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_
log.Println("[JHID] Configured successfully")
}
func check_finalizer(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) }
func ErrorHandler() gin.HandlerFunc {
return func(c *gin.Context) {
c.Next()
+7 -2
View File
@@ -7,10 +7,15 @@ import (
"github.com/gin-gonic/gin"
)
func startStubs(r *gin.Engine) {
func startStubs(r *gin.Engine, check_middleware func(c *gin.Context)) {
r.GET("/auth/v2/login", stubsHandler)
r.GET("/auth/v2/verify", stubsHandler)
r.GET("/auth/v2/check", EnsureLogin(false), func(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) })
if check_middleware == nil {
r.GET("/auth/v2/check", EnsureLogin(false), check_finalizer)
} else {
log.Println("[JHID] Custom check middleware enabled")
r.GET("/auth/v2/check", EnsureLogin(false), check_middleware, check_finalizer)
}
r.GET("/auth/v2/logout", logoutHandler)
}