Fix that prohibits changing name if user comes from an external auth provider seems to break OIDC for me #3067

Closed
opened 2025-02-11 22:08:16 +00:00 by Ma27 · 5 comments
Contributor

Description

Given the following oidc config:

auth:
  openid:
    enabled: true
    providers:
      authentik:
        authurl: redacted
        clientid: redacted
        clientsecret:
          file: /run/credentials/vikunja.service/oidc_secret
        logouturl: redacted
        name: authentik
        scope: openid email profile avatar

I got the following error after updating to commit :
6d0330d786

Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.NewEcho.Recover.RecoverWithConfig.func1.1.1()
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/middleware/recover.go:99 +0x156
Feb 11 21:48:57 vikunja vikunja[3990]: panic({0x1cb4400?, 0x3ccf3c0?})
Feb 11 21:48:57 vikunja vikunja[3990]:         runtime/panic.go:785 +0x132
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/coreos/go-oidc/v3/oidc.(*Provider).Claims(...)
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/coreos/go-oidc/v3@v3.12.0/oidc/oidc.go:305
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/modules/auth/openid.(*Provider).Issuer(0xc0001c4990)
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/modules/auth/openid/openid.go:85 +0x3d
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/api/v1.UserShow({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/routes/api/v1/user_show.go:94 +0x425
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.setupMetricsMiddleware.func1.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/routes/metrics.go:111 +0xd5
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo-jwt/v4.Config.ToMiddleware.func2.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo-jwt/v4@v4.3.0/jwt.go:237 +0x43c
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.registerAPIRoutes.func1.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/routes/routes.go:228 +0x1a4
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4.(*Echo).add.func1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/echo.go:581 +0x4b
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.setupStaticFrontendFilesHandler.static.func2.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/routes/static.go:144 +0x4c7
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4/middleware.GzipWithConfig.func1.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/middleware/compress.go:90 +0x26e
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.NewEcho.Recover.RecoverWithConfig.func1.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/middleware/recover.go:130 +0x114
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4/middleware.LoggerWithConfig.func2.1({0x2caa820, 0xc001016000})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/middleware/logger.go:125 +0xd8
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc000656008, {0x2c810b8, 0xc000ee4460}, 0xc001006280)
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/labstack/echo/v4@v4.13.3/echo.go:668 +0x323
Feb 11 21:48:57 vikunja vikunja[3990]: net/http.serverHandler.ServeHTTP({0xc00108ec30?}, {0x2c810b8?, 0xc000ee4460?}, 0x6?)
Feb 11 21:48:57 vikunja vikunja[3990]:         net/http/server.go:3210 +0x8e
Feb 11 21:48:57 vikunja vikunja[3990]: net/http.(*conn).serve(0xc0004327e0, {0x2c85ec8, 0xc000602480})
Feb 11 21:48:57 vikunja vikunja[3990]:         net/http/server.go:2092 +0x5d0
Feb 11 21:48:57 vikunja vikunja[3990]: created by net/http.(*Server).Serve in goroutine 93
Feb 11 21:48:57 vikunja vikunja[3990]:         net/http/server.go:3360 +0x485
Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 1 [chan receive]:
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd.init.func31(0xc000412300?, {0x204529d?, 0x4?, 0x20452a1?})
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/cmd/web.go:155 +0x15d
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).execute(0x3d1bf60, {0xc0000521a0, 0x0, 0x0})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/spf13/cobra@v1.8.1/command.go:989 +0xa91
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).ExecuteC(0x3d1bf60)
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).Execute(...)
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/spf13/cobra@v1.8.1/command.go:1041
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd.Execute()
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/cmd/cmd.go:44 +0x1a
Feb 11 21:48:57 vikunja vikunja[3990]: main.main()
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/main.go:22 +0xf
Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 11 [select]:
Feb 11 21:48:57 vikunja vikunja[3990]: go.opencensus.io/stats/view.(*worker).start(0xc0004d6700)
Feb 11 21:48:57 vikunja vikunja[3990]:         go.opencensus.io@v0.24.0/stats/view/worker.go:292 +0x9f
Feb 11 21:48:57 vikunja vikunja[3990]: created by go.opencensus.io/stats/view.init.0 in goroutine 1
Feb 11 21:48:57 vikunja vikunja[3990]:         go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x8d
Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 69 [select]:
Feb 11 21:48:57 vikunja vikunja[3990]: database/sql.(*DB).connectionOpener(0xc00049b380, {0x2c85f00, 0xc0005ae820})
Feb 11 21:48:57 vikunja vikunja[3990]:         database/sql/sql.go:1253 +0x87
Feb 11 21:48:57 vikunja vikunja[3990]: created by database/sql.OpenDB in goroutine 1
Feb 11 21:48:57 vikunja vikunja[3990]:         database/sql/sql.go:833 +0x130
Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 37 [select]:
Feb 11 21:48:57 vikunja vikunja[3990]: database/sql.(*DB).connectionCleaner(0xc00049b380, 0x0?)
Feb 11 21:48:57 vikunja vikunja[3990]:         database/sql/sql.go:1096 +0x9c
Feb 11 21:48:57 vikunja vikunja[3990]: created by database/sql.(*DB).startCleanerLocked in goroutine 1
Feb 11 21:48:57 vikunja vikunja[3990]:         database/sql/sql.go:1083 +0x105
Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 38 [chan receive]:
Feb 11 21:48:57 vikunja vikunja[3990]: github.com/ThreeDotsLabs/watermill/message.(*Router).Run(0xc0006d6000, {0x2c85910?, 0x3ec0300?})
Feb 11 21:48:57 vikunja vikunja[3990]:         github.com/ThreeDotsLabs/watermill@v1.4.4/message/router.go:390 +0x258
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/events.InitEvents()
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/events/events.go:113 +0x3f5
Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/initialize.FullInit.func1()
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/initialize/init.go:110 +0x19b
Feb 11 21:48:57 vikunja vikunja[3990]: created by code.vikunja.io/api/pkg/initialize.FullInit in goroutine 1
Feb 11 21:48:57 vikunja vikunja[3990]:         code.vikunja.io/api/pkg/initialize/init.go:

Reverting 090dd4b2f6 solved the issue for me.

I didn't see anything given the diff from 090dd4b2f6 that indicated I had to change my oidc config, hence the issue.

Vikunja Version

Commit 090dd4b2f6.

Browser and version

No response

Can you reproduce the bug on the Vikunja demo site?

No

Screenshots

No response

### Description Given the following oidc config: ```yaml auth: openid: enabled: true providers: authentik: authurl: redacted clientid: redacted clientsecret: file: /run/credentials/vikunja.service/oidc_secret logouturl: redacted name: authentik scope: openid email profile avatar ``` I got the following error after updating to commit : 6d0330d7861a91b113642fb3deaf59bbcf24dbd5 ``` Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.NewEcho.Recover.RecoverWithConfig.func1.1.1() Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/middleware/recover.go:99 +0x156 Feb 11 21:48:57 vikunja vikunja[3990]: panic({0x1cb4400?, 0x3ccf3c0?}) Feb 11 21:48:57 vikunja vikunja[3990]: runtime/panic.go:785 +0x132 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/coreos/go-oidc/v3/oidc.(*Provider).Claims(...) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/coreos/go-oidc/v3@v3.12.0/oidc/oidc.go:305 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/modules/auth/openid.(*Provider).Issuer(0xc0001c4990) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/modules/auth/openid/openid.go:85 +0x3d Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/api/v1.UserShow({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/api/v1/user_show.go:94 +0x425 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.setupMetricsMiddleware.func1.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/metrics.go:111 +0xd5 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo-jwt/v4.Config.ToMiddleware.func2.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo-jwt/v4@v4.3.0/jwt.go:237 +0x43c Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.registerAPIRoutes.func1.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/routes.go:228 +0x1a4 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4.(*Echo).add.func1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/echo.go:581 +0x4b Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.setupStaticFrontendFilesHandler.static.func2.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes/static.go:144 +0x4c7 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4/middleware.GzipWithConfig.func1.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/middleware/compress.go:90 +0x26e Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/routes.NewEcho.Recover.RecoverWithConfig.func1.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/middleware/recover.go:130 +0x114 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4/middleware.LoggerWithConfig.func2.1({0x2caa820, 0xc001016000}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/middleware/logger.go:125 +0xd8 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc000656008, {0x2c810b8, 0xc000ee4460}, 0xc001006280) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/labstack/echo/v4@v4.13.3/echo.go:668 +0x323 Feb 11 21:48:57 vikunja vikunja[3990]: net/http.serverHandler.ServeHTTP({0xc00108ec30?}, {0x2c810b8?, 0xc000ee4460?}, 0x6?) Feb 11 21:48:57 vikunja vikunja[3990]: net/http/server.go:3210 +0x8e Feb 11 21:48:57 vikunja vikunja[3990]: net/http.(*conn).serve(0xc0004327e0, {0x2c85ec8, 0xc000602480}) Feb 11 21:48:57 vikunja vikunja[3990]: net/http/server.go:2092 +0x5d0 Feb 11 21:48:57 vikunja vikunja[3990]: created by net/http.(*Server).Serve in goroutine 93 Feb 11 21:48:57 vikunja vikunja[3990]: net/http/server.go:3360 +0x485 Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 1 [chan receive]: Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd.init.func31(0xc000412300?, {0x204529d?, 0x4?, 0x20452a1?}) Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd/web.go:155 +0x15d Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).execute(0x3d1bf60, {0xc0000521a0, 0x0, 0x0}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra@v1.8.1/command.go:989 +0xa91 Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).ExecuteC(0x3d1bf60) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra.(*Command).Execute(...) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/spf13/cobra@v1.8.1/command.go:1041 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd.Execute() Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/cmd/cmd.go:44 +0x1a Feb 11 21:48:57 vikunja vikunja[3990]: main.main() Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/main.go:22 +0xf Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 11 [select]: Feb 11 21:48:57 vikunja vikunja[3990]: go.opencensus.io/stats/view.(*worker).start(0xc0004d6700) Feb 11 21:48:57 vikunja vikunja[3990]: go.opencensus.io@v0.24.0/stats/view/worker.go:292 +0x9f Feb 11 21:48:57 vikunja vikunja[3990]: created by go.opencensus.io/stats/view.init.0 in goroutine 1 Feb 11 21:48:57 vikunja vikunja[3990]: go.opencensus.io@v0.24.0/stats/view/worker.go:34 +0x8d Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 69 [select]: Feb 11 21:48:57 vikunja vikunja[3990]: database/sql.(*DB).connectionOpener(0xc00049b380, {0x2c85f00, 0xc0005ae820}) Feb 11 21:48:57 vikunja vikunja[3990]: database/sql/sql.go:1253 +0x87 Feb 11 21:48:57 vikunja vikunja[3990]: created by database/sql.OpenDB in goroutine 1 Feb 11 21:48:57 vikunja vikunja[3990]: database/sql/sql.go:833 +0x130 Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 37 [select]: Feb 11 21:48:57 vikunja vikunja[3990]: database/sql.(*DB).connectionCleaner(0xc00049b380, 0x0?) Feb 11 21:48:57 vikunja vikunja[3990]: database/sql/sql.go:1096 +0x9c Feb 11 21:48:57 vikunja vikunja[3990]: created by database/sql.(*DB).startCleanerLocked in goroutine 1 Feb 11 21:48:57 vikunja vikunja[3990]: database/sql/sql.go:1083 +0x105 Feb 11 21:48:57 vikunja vikunja[3990]: goroutine 38 [chan receive]: Feb 11 21:48:57 vikunja vikunja[3990]: github.com/ThreeDotsLabs/watermill/message.(*Router).Run(0xc0006d6000, {0x2c85910?, 0x3ec0300?}) Feb 11 21:48:57 vikunja vikunja[3990]: github.com/ThreeDotsLabs/watermill@v1.4.4/message/router.go:390 +0x258 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/events.InitEvents() Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/events/events.go:113 +0x3f5 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/initialize.FullInit.func1() Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/initialize/init.go:110 +0x19b Feb 11 21:48:57 vikunja vikunja[3990]: created by code.vikunja.io/api/pkg/initialize.FullInit in goroutine 1 Feb 11 21:48:57 vikunja vikunja[3990]: code.vikunja.io/api/pkg/initialize/init.go: ``` Reverting 090dd4b2f60078a84052591a5f3bed8907da21e3 solved the issue for me. I didn't see anything given the diff from 090dd4b2f60078a84052591a5f3bed8907da21e3 that indicated I had to change my oidc config, hence the issue. ### Vikunja Version Commit 090dd4b2f60078a84052591a5f3bed8907da21e3. ### Browser and version _No response_ ### Can you reproduce the bug on the Vikunja demo site? No ### Screenshots _No response_
Owner

Does the error happen during the start of Vikunja, or when you're doing something specific?

Does the error happen during the start of Vikunja, or when you're doing something specific?
konrad added the
kind/bug
label 2025-02-12 06:27:11 +00:00
Author
Contributor

It doesn't happen right at the start, but when I access any page.

It doesn't happen right at the start, but when I access any page.
Owner

There should be a line from before the stack trace which is the actual error message. Can you share that?

There should be a line from before the stack trace which is the actual error message. Can you share that?
Author
Contributor

Eh sorry, was a little tired when I reported this 🙈

Feb 11 21:42:17 vikunja vikunja[3730]: 2025-02-11T21:42:17Z: -         ▶ echo recover.go:119 [PANIC RECOVER] runtime error: invalid memory address or nil pointer dereference goroutine 626 [running]:
Eh sorry, was a little tired when I reported this 🙈 ``` Feb 11 21:42:17 vikunja vikunja[3730]: 2025-02-11T21:42:17Z: - ▶ echo recover.go:119 [PANIC RECOVER] runtime error: invalid memory address or nil pointer dereference goroutine 626 [running]: ```
Owner

Should be fixed now in 4e93806a44 - please check with the next unstable build or on the demo, once read (~45min)

Should be fixed now in https://kolaente.dev/vikunja/vikunja/commit/4e93806a44e79d94496c4d24b6cbbf67c52293b0 - please check with the next unstable build or on the demo, once read (~45min)
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: vikunja/vikunja#3067
No description provided.