From 58855ed3a228da141e285e6a5f539cd3ae965bd1 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 28 Sep 2026 11:56:19 +0200 Subject: [PATCH] chore: revert some fixes, make it work with stubs as well --- main.go | 28 +++++++--------------------- stubs.go | 8 +++++++- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/main.go b/main.go index 4693706..413886f 100644 --- a/main.go +++ b/main.go @@ -32,29 +32,14 @@ var ( // Wraps the normal configure function, but also gives you access to change the User Function, which is called upon login. // It is used to create or update a user. // The check middleware may be nil, in which case a default is used. Otherwise should be a valid gin middleware, calling c.Next() if okay to proceed. -func ConfigureFull( - r *gin.Engine, - app_url string, - default_redirect string, - user_function UserFunc, - stubs_on_unconfigured bool, - use_custom_check_middleware bool, - check_middleware func(c *gin.Context), -) { +func ConfigureFull(r *gin.Engine, app_url string, default_redirect string, user_function UserFunc, stubs_on_unconfigured bool, check_middleware func(c *gin.Context)) { userFunc = user_function - Configure(r, app_url, default_redirect, stubs_on_unconfigured, use_custom_check_middleware, check_middleware) + Configure(r, app_url, default_redirect, stubs_on_unconfigured, check_middleware) } // Configure and set up the login SDK // The check middleware may be nil, in which case a default is used. Otherwise should be a valid gin middleware, calling c.Next() if okay to proceed. -func Configure( - r *gin.Engine, - app_url string, - default_redirect string, - stubs_on_unconfigured bool, - use_custom_check_middleware bool, - check_middleware func(c *gin.Context), -) { +func Configure(r *gin.Engine, app_url string, default_redirect string, stubs_on_unconfigured bool, check_middleware func(c *gin.Context)) { issuer := os.Getenv("OIDC_ISSUER") clientID := os.Getenv("OIDC_CLIENT_ID") clientSecret := os.Getenv("OIDC_CLIENT_SECRET") @@ -63,7 +48,7 @@ func Configure( 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") @@ -87,8 +72,7 @@ func Configure( 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 !use_custom_check_middleware { + if check_middleware == nil { r.GET("/auth/v2/check", EnsureLogin(false), check_finalizer) } else { log.Println("[JHID] Custom check middleware enabled") @@ -99,6 +83,8 @@ func Configure( 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() diff --git a/stubs.go b/stubs.go index 98184e1..eb9265d 100644 --- a/stubs.go +++ b/stubs.go @@ -7,9 +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) + 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/check", EnsureLogin(false), func(ctx *gin.Context) { ctx.JSON(200, gin.H{"success": "true"}) }) r.GET("/auth/v2/logout", logoutHandler) }