Skip to content

Releases: jazzband/django-oauth-toolkit

Release 3.0.1

07 Sep 14:10
1d19e54
Compare
Choose a tag to compare

bugfix #1491 Fix migration error when there are pre-existing Access Tokens.

Release 3.0.0

06 Sep 13:21
5ce5e7f
Compare
Choose a tag to compare

Release 3.0.0

WARNING - POTENTIAL BREAKING CHANGES

  • Changes to the AbstractAccessToken model require doing a manage.py migrate after upgrading.
  • If you use swappable models you will need to make sure your custom models are also updated (usually manage.py makemigrations).
  • Old Django versions below 4.2 are no longer supported.
  • A few deprecations warned about in 2.4.0 (#1345) have been removed. See below.

Added

  • #1366 Add Docker containerized apps for testing IDP and RP.
  • #1454 Added compatibility with LoginRequiredMiddleware introduced in Django 5.1.

Changed

  • Many documentation and project internals improvements.
  • #1446 Use generic models pk instead of id. This enables, for example, custom swapped models to have a different primary key field.
  • #1447 Update token to TextField from CharField. Removing the 255 character limit enables supporting JWT tokens with additional claims.
    This adds a SHA-256 token_checksum field that is used to validate tokens.
  • #1450 Transactions wrapping writes of the Tokens now rely on Django's database routers to determine the correct
    database to use instead of assuming that 'default' is the correct one.
  • #1455 Changed minimum supported Django version to >=4.2.

Removed

  • #1425 Remove deprecated RedirectURIValidator, WildcardSet per #1345; validate_logout_request per #1274

Fixed

  • #1444, #1476 Fix several 500 errors to instead raise appropriate errors.
  • #1469 Fix ui_locales request parameter triggers AttributeError under certain circumstances

Security

Release 2.4.0

20 May 13:56
2.4.0
f34ba7c
Compare
Choose a tag to compare

[2.4.0] - 2024-05-13

WARNING

Issues caused by Release 2.0.0 breaking changes continue to be logged. Please make sure to carefully read these release notes before
performing a MAJOR upgrade to 2.x.

These issues both result in {"error": "invalid_client"}:

  1. The application client secret is now hashed upon save. You must copy it before it is saved. Using the hashed value will fail.

  2. PKCE_REQUIRED is now True by default. You should use PKCE with your client or set PKCE_REQUIRED=False if you are unable to fix the client.

If you are going to revert migration 0006 make note that previously hashed client_secret cannot be reverted!

Added

Fixed

  • #1292 Interpret EXP in AccessToken always as UTC instead of (possibly) local timezone.
    Use setting AUTHENTICATION_SERVER_EXP_TIME_ZONE to enable different time zone in case the remote
    authentication server does not provide EXP in UTC.
  • #1323 Fix instructions in documentation
    on how to create a code challenge and code verifier
  • #1284 Fix a 500 error when trying to logout with no id_token_hint even if the browser session already expired.
  • #1296 Added reverse function in migration 0006_alter_application_client_secret. Note that reversing this migration cannot undo a hashed client_secret.
  • #1345 Fix encapsulation for Redirect URI scheme validation. Deprecates RedirectURIValidator in favor of AllowedURIValidator.
  • #1357 Move import of setting_changed signal from test to django core modules.
  • #1361 Fix prompt=none redirects to login screen
  • #1380 Fix AttributeError in OAuth2ExtraTokenMiddleware when a custom AccessToken model is used.
  • #1288 Fix #1276 which attempted to resolve #1092 for requests that don't have a client_secret per RFC 6749 4.1.1
  • #1337 Gracefully handle expired or deleted refresh tokens, in validate_user.
  • Various documentation improvements: #1410, #1408, #1405, #1399, #1401, #1396, #1375, #1162, #1315, #1307

Removed

  • #1350 Remove support for Python 3.7 and Django 2.2

Release 2.3.0

31 May 20:51
2.3.0
13a6143
Compare
Choose a tag to compare

[2.3.0] 2023-05-31

WARNING

Issues caused by Release 2.0.0 breaking changes continue to be logged. Please make sure to carefully read these release notes before
performing a MAJOR upgrade to 2.x.

These issues both result in {"error": "invalid_client"}:

  1. The application client secret is now hashed upon save. You must copy it before it is saved. Using the hashed value will fail.

  2. PKCE_REQUIRED is now True by default. You should use PKCE with your client or set PKCE_REQUIRED=False if you are unable to fix the client.

Added

Changed

Release 2.2.0

18 Oct 16:40
2.2.0
6dc4f89
Compare
Choose a tag to compare

[2.2.0] 2022-10-18

WARNING

Issues caused by Release 2.0.0 breaking changes continue to be logged. Please make sure to carefully read these release notes before
performing a MAJOR upgrade to 2.x.

These issues both result in {"error": "invalid_client"}:

  1. The application client secret is now hashed upon save. You must copy it before it is saved. Using the hashed value will fail.

  2. PKCE_REQUIRED is now True by default. You should use PKCE with your client or set PKCE_REQUIRED=False if you are unable to fix the client.

Added

  • #1208 Add 'code_challenge_method' parameter to authorization call in documentation
  • #1182 Add 'code_verifier' parameter to token requests in documentation

Changed

  • #1203 Support Django 4.1.

Fixed

  • #1203 Remove upper version bound on Django, to allow upgrading to Django 4.1.1 bugfix release.
  • #1210 Handle oauthlib errors on create token requests

Release 2.1.0

23 Jun 15:08
2.1.0
890657d
Compare
Choose a tag to compare

WARNING

Issues caused by Release 2.0.0 breaking changes continue to be logged. Please make sure to carefully read these release notes before
performing a MAJOR upgrade to 2.x.

These issues both result in {"error": "invalid_client"}:

  1. The application client secret is now hashed upon save. You must copy it before it is saved. Using the hashed value will fail.

  2. PKCE_REQUIRED is now True by default. You should use PKCE with your client or set PKCE_REQUIRED=False if you are unable to fix the client.

Added

Changed

  • #1152 createapplication management command enhanced to display an auto-generated secret before it gets hashed.
  • #1172, #1159, #1158 documentation improvements.

Fixed

  • #1147 Fixed 2.0.0 implementation of hashed client secret to work with swapped models.

Release 2.0.0

24 Apr 18:33
2.0.0
025cd1b
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.7.0...2.0.0

Release 1.7.0

23 Jan 22:30
a6bd0d0
Compare
Choose a tag to compare

[1.7.0] 2022-01-23

Added

  • #969 Add batching of expired token deletions in cleartokens management command and models.clear_expired()
    to improve performance for removal of large numers of expired tokens. Configure with
    CLEAR_EXPIRED_TOKENS_BATCH_SIZE and
    CLEAR_EXPIRED_TOKENS_BATCH_INTERVAL.
  • #1070 Add a Celery task for clearing expired tokens, e.g. to be scheduled as a periodic task.
  • #1062 Add Brazilian Portuguese (pt-BR) translations.
  • #1069 OIDC: Add an alternate form of
    get_additional_claims()
    which makes the list of additional claims_supported available at the OIDC auto-discovery endpoint (.well-known/openid-configuration).

Fixed

  • #1012 Return 200 status code with {"active": false} when introspecting a nonexistent token
    per RFC 7662. It had been incorrectly returning 401.

Release 1.6.3

11 Jan 13:58
1.6.3
1a55feb
Compare
Choose a tag to compare

[1.6.3] 2022-01-11

Fixed

  • #1085 Fix for #1083 admin UI search for idtoken results in django.core.exceptions.FieldError: Cannot resolve keyword 'token' into field.

Added

  • #1085 Add admin UI search fields for additional models.

Release 1.6.2

07 Jan 18:05
1.6.2
4513459
Compare
Choose a tag to compare

[1.6.2] 2022-01-06

NOTE: This release reverts an inadvertently-added breaking change.

Fixed