From 2fd1f67639455bb9b8946615430039349bece0d9 Mon Sep 17 00:00:00 2001 From: WeatherGod3218 Date: Sat, 16 May 2026 14:18:16 -0500 Subject: [PATCH] okd wants to die --- main.go | 28 ++++++++++++++++++++++++++++ users.go | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index e1ec033..8422e75 100644 --- a/main.go +++ b/main.go @@ -17,6 +17,32 @@ var DEV_FORCE_IS_EBOARD bool = os.Getenv("DEV_FORCE_IS_EBOARD") == "true" var oidcClient = OIDCClient{} +func RequireAuth() gin.HandlerFunc { + return func(c *gin.Context) { + value, exists := c.Get("claims") + + if !exists { + c.AbortWithStatusJSON(401, gin.H{ + "error": "unauthorized", + }) + return + } + + claims, ok := value.(*cshAuth.Claims) + + if !ok || claims == nil { + c.AbortWithStatusJSON(401, gin.H{ + "error": "unauthorized", + }) + return + } + + c.Set("authClaims", claims) + + c.Next() + } +} + func main() { database.Client = database.Connect() @@ -28,6 +54,7 @@ func main() { os.Getenv("SERVER_HOST")+"/auth/callback", []string{"profile", "email", "groups"}, ) + oidcClient.setupOidcClient(os.Getenv("AUTH_OIDC_ID"), os.Getenv("AUTH_OIDC_SECRET")) if err != nil { logging.Logger.WithFields(logrus.Fields{"error": err, "module": "main", "method": "main"}).Fatal("error initializing csh-auth") @@ -43,6 +70,7 @@ func main() { router.GET("/auth/logout", auth.HandleLogout) router.Use(auth.CookieMiddleware()) + router.Use(RequireAuth()) router.GET("/", GetHomePage) router.GET("/counters/:id", LoadCounter) diff --git a/users.go b/users.go index c55a212..e8b005e 100644 --- a/users.go +++ b/users.go @@ -207,7 +207,7 @@ func (client *OIDCClient) GetUserInfo(user *OIDCUser) { // GetUserData Retreives information about a specific CSH user account func GetUserData(c *gin.Context) cshAuth.UserInfo { - cl, _ := c.Get("cshauth") + cl, exists := c.Get("cshauth") user := cl.(*cshAuth.Claims).UserInfo return user }