Skip to content

Releases: django-oauth/django-oauth-toolkit

Release 3.1.0

02 Nov 05:58
842a4d5

Choose a tag to compare

NOTE: This is the first release under the new django-oauth organization. The project moved in order to be more independent and to bypass quota limits on parallel CI jobs we were encountering in Jazzband. The project will emulateDjango Commons going forward in it's operation. We're always on the look for willing maintainers and contributors. Feel free to start participating any time. PR's are always welcome.

Added

  • #1506 Support for Wildcard Origin and Redirect URIs - Adds a new setting ALLOW_URL_WILDCARDS. This feature is useful for working with CI service such as cloudflare, netlify, and vercel that offer branch
    deployments for development previews and user acceptance testing.
  • #1586 Turkish language support added

Changed

The project is now hosted in the django-oauth organization.

Fixed

  • #1517 OP prompts for logout when no OP session
  • #1512 client_secret not marked sensitive
  • #1521 Fix 0012 migration loading access token table into memory
  • #1584 Fix IDP container in docker compose environment could not find templates and static files.
  • #1562 Fix: Handle AttributeError in IntrospectTokenView
  • #1583 Fix: Missing pt_BR translations

Release 3.0.1

07 Sep 14:10
1d19e54

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

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

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

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

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

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

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

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

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.