Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Apr 16, 2024

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
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

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

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
67 checks passed
@BeryJu BeryJu deleted the events/fix-middleware-api-user branch April 16, 2024 21:32
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

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