From 5b836ee8c46902b64c8491b46794accfa5556d12 Mon Sep 17 00:00:00 2001 From: Stavros Date: Tue, 14 Apr 2026 12:18:55 +0300 Subject: [PATCH] fix: review comments --- ...oder_user.down.sql => 000008_oidc_code_reuse.down.sql} | 0 internal/assets/migrations/000008_oidc_code_reuse.up.sql | 1 + internal/assets/migrations/000008_oidc_coder_user.up.sql | 1 - internal/controller/oidc_controller.go | 8 +++++--- 4 files changed, 6 insertions(+), 4 deletions(-) rename internal/assets/migrations/{000008_oidc_coder_user.down.sql => 000008_oidc_code_reuse.down.sql} (100%) create mode 100644 internal/assets/migrations/000008_oidc_code_reuse.up.sql delete mode 100644 internal/assets/migrations/000008_oidc_coder_user.up.sql diff --git a/internal/assets/migrations/000008_oidc_coder_user.down.sql b/internal/assets/migrations/000008_oidc_code_reuse.down.sql similarity index 100% rename from internal/assets/migrations/000008_oidc_coder_user.down.sql rename to internal/assets/migrations/000008_oidc_code_reuse.down.sql diff --git a/internal/assets/migrations/000008_oidc_code_reuse.up.sql b/internal/assets/migrations/000008_oidc_code_reuse.up.sql new file mode 100644 index 0000000..98c71b2 --- /dev/null +++ b/internal/assets/migrations/000008_oidc_code_reuse.up.sql @@ -0,0 +1 @@ +ALTER TABLE "oidc_tokens" ADD COLUMN "code_hash" TEXT NOT NULL DEFAULT ""; diff --git a/internal/assets/migrations/000008_oidc_coder_user.up.sql b/internal/assets/migrations/000008_oidc_coder_user.up.sql deleted file mode 100644 index 815ba4b..0000000 --- a/internal/assets/migrations/000008_oidc_coder_user.up.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "oidc_tokens" ADD COLUMN "code_hash" TEXT DEFAULT ""; diff --git a/internal/controller/oidc_controller.go b/internal/controller/oidc_controller.go index 0d2ba2c..2f78e18 100644 --- a/internal/controller/oidc_controller.go +++ b/internal/controller/oidc_controller.go @@ -1,6 +1,7 @@ package controller import ( + "database/sql" "errors" "fmt" "net/http" @@ -275,9 +276,10 @@ func (controller *OIDCController) Token(c *gin.Context) { case "authorization_code": entry, err := controller.oidc.GetCodeEntry(c, controller.oidc.Hash(req.Code), client.ClientID) if err != nil { - // Delete the access token just in case - controller.oidc.DeleteTokenByCodeHash(c, controller.oidc.Hash(req.Code)) - + err := controller.oidc.DeleteTokenByCodeHash(c, controller.oidc.Hash(req.Code)) + if err != nil && !errors.Is(err, sql.ErrNoRows) { + tlog.App.Error().Err(err).Msg("Failed to delete access token by code hash") + } if errors.Is(err, service.ErrCodeNotFound) { tlog.App.Warn().Msg("Code not found") c.JSON(400, gin.H{