|
1 |
| -## Changelog |
2 |
| -### 1.3.0 [unreleased] |
3 |
| - |
4 |
| -* Fix a race condition in creation of AccessToken with external oauth2 server. |
| 1 | +# Changelog |
| 2 | +All notable changes to this project will be documented in this file. |
| 3 | + |
| 4 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 5 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 6 | + |
| 7 | +## [unreleased] |
| 8 | +### Added |
| 9 | +### Changed |
| 10 | +### Deprecated |
| 11 | +### Removed |
| 12 | +### Fixed |
| 13 | +### Security |
| 14 | + |
| 15 | +## [1.3.0] 2020-03-TBD |
| 16 | + |
| 17 | +### Added |
| 18 | +* Add support for Python 3.7 & 3.8 |
| 19 | +* Add support for Django>=2.1,<=3.0 |
| 20 | +* Add requirement for oauthlib>=3.0.1 |
| 21 | +* Add support for [Proof Key for Code Exchange (PKCE, RFC 7636)](https://tools.ietf.org/html/rfc7636). |
| 22 | +* Add support for custom token generators (e.g. to create JWT tokens). |
| 23 | +* Add new `OAUTH2_PROVIDER` [settings](https://django-oauth-toolkit.readthedocs.io/en/latest/settings.html): |
| 24 | + - `ACCESS_TOKEN_GENERATOR` to override the default access token generator. |
| 25 | + - `REFRESH_TOKEN_GENERATOR` to override the default refresh token generator. |
| 26 | + - `EXTRA_SERVER_KWARGS` options dictionary for oauthlib's Server class. |
| 27 | + - `PKCE_REQUIRED` to require PKCE. |
| 28 | +* Add `createapplication` management command to create an application. |
| 29 | +* Add `id` in toolkit admin console applications list. |
| 30 | +* Add nonstandard Google support for [urn:ietf:wg:oauth:2.0:oob] `redirect_uri` |
| 31 | + for [Google OAuth2](https://developers.google.com/identity/protocols/OAuth2InstalledApp) "manual copy/paste". |
| 32 | + **N.B.** this feature appears to be deprecated and replaced with methods described in |
| 33 | + [RFC 8252: OAuth2 for Native Apps](https://tools.ietf.org/html/rfc8252) and *may* be deprecated and/or removed |
| 34 | + from a future release of Django-oauth-toolkit. |
| 35 | + |
| 36 | +### Changed |
| 37 | +* Change this change log to use [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format. |
5 | 38 | * **Backwards-incompatible** squashed migrations:
|
6 |
| - If you are currently on a release < 1.2.0, you will need to first install 1.2.x then `manage.py migrate` before |
| 39 | + If you are currently on a release < 1.2.0, you will need to first install 1.2.0 then `manage.py migrate` before |
7 | 40 | upgrading to >= 1.3.0.
|
8 |
| -* Bump django minimum to 2.1 |
9 |
| -* Dropped Python 3.4 |
| 41 | +* Improved the [tutorial](https://django-oauth-toolkit.readthedocs.io/en/latest/tutorial/tutorial.html). |
10 | 42 |
|
11 |
| -### 1.2.0 [2018-06-03] |
| 43 | +### Removed |
| 44 | +* Remove support for Python 3.4 |
| 45 | +* Remove support for Django<=2.0 |
| 46 | +* Remove requirement for oauthlib<3.0 |
| 47 | + |
| 48 | +### Fixed |
| 49 | +* Fix a race condition in creation of AccessToken with external oauth2 server. |
| 50 | +* Fix several concurrency issues. (#[638](https://github.com/jazzband/django-oauth-toolkit/issues/638)) |
| 51 | +* Fix to pass `request` to `django.contrib.auth.authenticate()` (#[636](https://github.com/jazzband/django-oauth-toolkit/issues/636)) |
| 52 | +* Fix missing `oauth2_error` property exception oauthlib_core.verify_request method raises exceptions in authenticate. |
| 53 | + (#[633](https://github.com/jazzband/django-oauth-toolkit/issues/633)) |
| 54 | +* Fix "django.db.utils.NotSupportedError: FOR UPDATE cannot be applied to the nullable side of an outer join" for postgresql. |
| 55 | + (#[714](https://github.com/jazzband/django-oauth-toolkit/issues/714)) |
| 56 | +* Fix to return a new refresh token during grace period rather than the recently-revoked one. |
| 57 | + (#[702](https://github.com/jazzband/django-oauth-toolkit/issues/702)) |
| 58 | +* Fix a bug in refresh token revocation. |
| 59 | + (#[625](https://github.com/jazzband/django-oauth-toolkit/issues/625)) |
| 60 | + |
| 61 | +## 1.2.0 [2018-06-03] |
12 | 62 |
|
13 | 63 | * **Compatibility**: Python 3.4 is the new minimum required version.
|
14 | 64 | * **Compatibility**: Django 2.0 is the new minimum required version.
|
|
17 | 67 | * Moved `redirect_uris` validation to the application clean() method.
|
18 | 68 |
|
19 | 69 |
|
20 |
| -### 1.1.2 [2018-05-12] |
| 70 | +## 1.1.2 [2018-05-12] |
21 | 71 |
|
22 | 72 | * Return state with Authorization Denied error (RFC6749 section 4.1.2.1)
|
23 | 73 | * Fix a crash with malformed base64 authentication headers
|
24 | 74 | * Fix a crash with malformed IPv6 redirect URIs
|
25 | 75 |
|
26 |
| -### 1.1.1 [2018-05-08] |
| 76 | +## 1.1.1 [2018-05-08] |
27 | 77 |
|
28 | 78 | * **Critical**: Django OAuth Toolkit 1.1.0 contained a migration that would revoke all existing
|
29 | 79 | RefreshTokens (`0006_auto_20171214_2232`). This release corrects the migration.
|
30 | 80 | If you have already ran it in production, please see the following issue for more details:
|
31 | 81 | https://github.com/jazzband/django-oauth-toolkit/issues/589
|
32 | 82 |
|
33 | 83 |
|
34 |
| -### 1.1.0 [2018-04-13] |
| 84 | +## 1.1.0 [2018-04-13] |
35 | 85 |
|
36 | 86 | * **Notice**: The Django OAuth Toolkit project is now hosted by JazzBand.
|
37 | 87 | * **Compatibility**: Django 1.11 is the new minimum required version. Django 1.10 is no longer supported.
|
|
45 | 95 | refresh tokens may be re-used.
|
46 | 96 | * An `app_authorized` signal is fired when a token is generated.
|
47 | 97 |
|
48 |
| -### 1.0.0 [2017-06-07] |
| 98 | +## 1.0.0 [2017-06-07] |
49 | 99 |
|
50 | 100 | * **New feature**: AccessToken, RefreshToken and Grant models are now swappable.
|
51 | 101 | * #477: **New feature**: Add support for RFC 7662 (IntrospectTokenView, introspect scope)
|
|
61 | 111 | * The dependency on django-braces has been dropped.
|
62 | 112 | * The oauthlib dependency is no longer pinned.
|
63 | 113 |
|
64 |
| -### 0.12.0 [2017-02-24] |
| 114 | +## 0.12.0 [2017-02-24] |
65 | 115 |
|
66 | 116 | * **New feature**: Class-based scopes backends. Listing scopes, available scopes and default scopes
|
67 | 117 | is now done through the class that the `SCOPES_BACKEND_CLASS` setting points to.
|
|
75 | 125 | * #434: Relax URL patterns to allow for UUID primary keys
|
76 | 126 |
|
77 | 127 |
|
78 |
| -### 0.11.0 [2016-12-1] |
| 128 | +## 0.11.0 [2016-12-1] |
79 | 129 |
|
80 | 130 | * #315: AuthorizationView does not overwrite requests on get
|
81 | 131 | * #425: Added support for Django 1.10
|
|
84 | 134 | * #389: Reuse refresh tokens if enabled.
|
85 | 135 |
|
86 | 136 |
|
87 |
| -### 0.10.0 [2015-12-14] |
| 137 | +## 0.10.0 [2015-12-14] |
88 | 138 |
|
89 | 139 | * **#322: dropping support for python 2.6 and django 1.4, 1.5, 1.6**
|
90 | 140 | * #310: Fixed error that could occur sometimes when checking validity of incomplete AccessToken/Grant
|
|
101 | 151 | * #273: Generic read write scope by resource
|
102 | 152 |
|
103 | 153 |
|
104 |
| -### 0.9.0 [2015-07-28] |
| 154 | +## 0.9.0 [2015-07-28] |
105 | 155 |
|
106 | 156 | * ``oauthlib_backend_class`` is now pluggable through Django settings
|
107 | 157 | * #127: ``application/json`` Content-Type is now supported using ``JSONOAuthLibCore``
|
|
110 | 160 | * added support for oauthlib 1.0
|
111 | 161 |
|
112 | 162 |
|
113 |
| -### 0.8.2 [2015-06-25] |
| 163 | +## 0.8.2 [2015-06-25] |
114 | 164 |
|
115 | 165 | * Fix the migrations to be two-step and allow upgrade from 0.7.2
|
116 | 166 |
|
117 |
| -### 0.8.1 [2015-04-27] |
| 167 | +## 0.8.1 [2015-04-27] |
118 | 168 |
|
119 | 169 | * South migrations fixed. Added new django migrations.
|
120 | 170 |
|
121 |
| -### 0.8.0 [2015-03-27] |
| 171 | +## 0.8.0 [2015-03-27] |
122 | 172 |
|
123 | 173 | * Several docs improvements and minor fixes
|
124 | 174 | * #185: fixed vulnerabilities on Basic authentication
|
|
136 | 186 | * #38: create access tokens not bound to a user instance for *client credentials* flow
|
137 | 187 |
|
138 | 188 |
|
139 |
| -### 0.7.2 [2014-07-02] |
| 189 | +## 0.7.2 [2014-07-02] |
140 | 190 |
|
141 | 191 | * Don't pin oauthlib
|
142 | 192 |
|
143 |
| -### 0.7.1 [2014-04-27] |
| 193 | +## 0.7.1 [2014-04-27] |
144 | 194 |
|
145 | 195 | * Added database indexes to the OAuth2 related models to improve performances.
|
146 | 196 |
|
147 | 197 | **Warning: schema migration does not work for sqlite3 database, migration should be performed manually**
|
148 | 198 |
|
149 |
| -### 0.7.0 [2014-03-01] |
| 199 | +## 0.7.0 [2014-03-01] |
150 | 200 |
|
151 | 201 | * Created a setting for the default value for approval prompt.
|
152 | 202 | * Improved docs
|
|
157 | 207 | * Make Application model truly "swappable" (introduces a new non-namespaced setting `OAUTH2_PROVIDER_APPLICATION_MODEL`)
|
158 | 208 |
|
159 | 209 |
|
160 |
| -### 0.6.1 [2014-02-05] |
| 210 | +## 0.6.1 [2014-02-05] |
161 | 211 |
|
162 | 212 | * added support for `scope` query parameter keeping backwards compatibility for the original `scopes` parameter.
|
163 | 213 | * __str__ method in Application model returns content of `name` field when available
|
164 | 214 |
|
165 |
| -### 0.6.0 [2014-01-26] |
| 215 | +## 0.6.0 [2014-01-26] |
166 | 216 |
|
167 | 217 | * oauthlib 0.6.1 support
|
168 | 218 | * Django dev branch support
|
|
178 | 228 | * Issue #64: Fix urlencode clientid secret
|
179 | 229 |
|
180 | 230 |
|
181 |
| -### 0.5.0 [2013-09-17] |
| 231 | +## 0.5.0 [2013-09-17] |
182 | 232 |
|
183 | 233 | * oauthlib 0.6.0 support
|
184 | 234 |
|
|
195 | 245 | * Issue #53: Quote characters in the url query that are safe for Django but not for oauthlib
|
196 | 246 |
|
197 | 247 |
|
198 |
| -### 0.4.1 [2013-09-06] |
| 248 | +## 0.4.1 [2013-09-06] |
199 | 249 |
|
200 | 250 | * Optimize queries on access token validation
|
201 | 251 |
|
202 |
| -### 0.4.0 [2013-08-09] |
| 252 | +## 0.4.0 [2013-08-09] |
203 | 253 |
|
204 | 254 | **New Features**
|
205 | 255 |
|
|
229 | 279 | * Issue #47: Add docs for views decorators
|
230 | 280 |
|
231 | 281 |
|
232 |
| -### 0.3.2 [2013-07-10] |
| 282 | +## 0.3.2 [2013-07-10] |
233 | 283 |
|
234 | 284 | * Bugfix #37: Error in migrations with custom user on Django 1.5
|
235 | 285 |
|
236 |
| -### 0.3.1 [2013-07-10] |
| 286 | +## 0.3.1 [2013-07-10] |
237 | 287 |
|
238 | 288 | * Bugfix #27: OAuthlib refresh token refactoring
|
239 | 289 |
|
240 |
| -### 0.3.0 [2013-06-14] |
| 290 | +## 0.3.0 [2013-06-14] |
241 | 291 |
|
242 | 292 | * [Django REST Framework](http://django-rest-framework.org/) integration layer
|
243 | 293 | * Bugfix #13: Populate request with client and user in `validate_bearer_token`
|
|
248 | 298 | * `requested_scopes` parameter in ScopedResourceMixin changed to `required_scopes`
|
249 | 299 |
|
250 | 300 |
|
251 |
| -### 0.2.1 [2013-06-06] |
| 301 | +## 0.2.1 [2013-06-06] |
252 | 302 |
|
253 | 303 | * Core optimizations
|
254 | 304 |
|
255 |
| -### 0.2.0 [2013-06-05] |
| 305 | +## 0.2.0 [2013-06-05] |
256 | 306 |
|
257 | 307 | * Add support for Django1.4 and Django1.6
|
258 | 308 | * Add support for Python 3.3
|
259 | 309 | * Add a default ReadWriteScoped view
|
260 | 310 | * Add tutorial to docs
|
261 | 311 |
|
262 | 312 |
|
263 |
| -### 0.1.0 [2013-05-31] |
| 313 | +## 0.1.0 [2013-05-31] |
264 | 314 |
|
265 | 315 | * Support OAuth2 Authorization Flows
|
266 | 316 |
|
267 | 317 |
|
268 |
| -### 0.0.0 [2013-05-17] |
| 318 | +## 0.0.0 [2013-05-17] |
269 | 319 |
|
270 | 320 | * Discussion with Daniel Greenfeld at Django Circus
|
271 | 321 | * Ignition
|
0 commit comments