Skip to content

events: fix incorrect user logged when using API token authentication#9302

Merged
BeryJu merged 1 commit intomainfrom
events/fix-middleware-api-user
Apr 16, 2024
Merged

events: fix incorrect user logged when using API token authentication#9302
BeryJu merged 1 commit intomainfrom
events/fix-middleware-api-user

Conversation

@BeryJu
Copy link
Member

@BeryJu BeryJu commented Apr 16, 2024

Details

This was introduced in 2024.2 by incorrectly caching the user from before the request instead of taking it from the request when an action was actually done. This works fine with the session auth as the session middleware happens before the event middleware, however since the token authentication modifies the user as part of the view and not the middleware, the user was updated too late.

This also adds a test that makes sure this doesn't happen again.


Checklist

  • Local tests pass (ak test authentik/)
  • The code has been formatted (make lint-fix)

If an API change has been made

  • The API schema has been updated (make gen-build)

If changes to the frontend have been made

  • The code has been formatted (make web)

If applicable

  • The documentation has been updated
  • The documentation has been formatted (make website)

@BeryJu BeryJu requested a review from a team as a code owner April 16, 2024 20:05
@netlify
Copy link

netlify bot commented Apr 16, 2024

Deploy Preview for authentik-docs canceled.

Name Link
🔨 Latest commit 6368390
🔍 Latest deploy log https://app.netlify.com/sites/authentik-docs/deploys/661eddf7193ef30008bb3383

@netlify
Copy link

netlify bot commented Apr 16, 2024

Deploy Preview for authentik-storybook canceled.

Name Link
🔨 Latest commit 6368390
🔍 Latest deploy log https://app.netlify.com/sites/authentik-storybook/deploys/661eddf7ea13ba0008523aa2

@codecov
Copy link

codecov bot commented Apr 16, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.39%. Comparing base (ba36855) to head (6368390).
Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9302   +/-   ##
=======================================
  Coverage   92.38%   92.39%           
=======================================
  Files         665      665           
  Lines       32609    32617    +8     
=======================================
+ Hits        30126    30135    +9     
+ Misses       2483     2482    -1     
Flag Coverage Δ
e2e 50.66% <48.14%> (-0.02%) ⬇️
integration 26.00% <11.11%> (-0.01%) ⬇️
unit 89.66% <100.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
@BeryJu BeryJu force-pushed the events/fix-middleware-api-user branch from b5e750a to 6368390 Compare April 16, 2024 20:22
Copy link
Contributor

@kensternberg-authentik kensternberg-authentik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At a syntactical level, this doesn't look like brain science.

@BeryJu BeryJu merged commit 89c841b into main Apr 16, 2024
@BeryJu BeryJu deleted the events/fix-middleware-api-user branch April 16, 2024 21:32
@github-actions
Copy link
Contributor

authentik PR Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-6368390aab65e4f061590838b7feb44e7f94eb5c
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

For arm64, use these values:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-6368390aab65e4f061590838b7feb44e7f94eb5c-arm64
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
    repository: ghcr.io/goauthentik/dev-server
    tag: gh-ghcr.io/goauthentik/dev-server:gh-6368390aab65e4f061590838b7feb44e7f94eb5c

For arm64, use these values:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
    repository: ghcr.io/goauthentik/dev-server
    tag: gh-ghcr.io/goauthentik/dev-server:gh-6368390aab65e4f061590838b7feb44e7f94eb5c-arm64

Afterwards, run the upgrade commands from the latest release notes.

@BeryJu
Copy link
Member Author

BeryJu commented Apr 16, 2024

/cherry-pick version-2024.2

@gcp-cherry-pick-bot
Copy link
Contributor

Cherry-pick failed with Merge error 89c841b53020e68acfdfd5a56d3525a51b6dc0f6 into temp-cherry-pick-3b8c7b-version-2024.2

BeryJu added a commit that referenced this pull request Apr 16, 2024
…#9302)

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
# Conflicts:
#	authentik/events/middleware.py
#	authentik/events/tests/test_middleware.py
kensternberg-authentik added a commit that referenced this pull request Apr 18, 2024
* main: (23 commits)
  web: bump API Client version (#9316)
  release: 2024.2.3
  website/docs: 2024.2.3 release notes (#9313)
  web/admin: fix log viewer empty state (#9315)
  website/docs: fix formatting for stage changes (#9314)
  core: bump github.com/go-ldap/ldap/v3 from 3.4.7 to 3.4.8 (#9310)
  core: bump goauthentik.io/api/v3 from 3.2024022.11 to 3.2024022.12 (#9311)
  web: bump core-js from 3.36.1 to 3.37.0 in /web (#9309)
  core: bump gunicorn from 21.2.0 to 22.0.0 (#9308)
  core, web: update translations (#9307)
  website/docs: system settings: add default token duration and length (#9306)
  web/flows: update flow background (#9305)
  web: fix locale loading being skipped (#9301)
  translate: Updates for file web/xliff/en.xlf in fr (#9304)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#9303)
  core: replace authentik_signals_ignored_fields with audit_ignore (#9291)
  web/flow: fix form input rendering issue (#9297)
  events: fix incorrect user logged when using API token authentication (#9302)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#9293)
  translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#9295)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants