2019-03-28 13:46:26 -07:00
# Changes
2023-09-16 00:30:38 +01:00
## Unreleased
2023-01-07 01:02:02 +00:00
2024-01-11 04:27:56 +00:00
## 0.9.0
2024-01-04 04:10:46 +00:00
- Remove use of `async-trait` on `SessionStore` trait.
- Minimum supported Rust version (MSRV) is now 1.75.
2023-09-16 03:28:31 +01:00
## 0.8.0
2023-03-22 21:13:56 +00:00
- Set secure attribute when adding a session removal cookie.
2023-09-16 00:30:20 +00:00
- Update `redis` dependency to `0.23` .
2023-09-16 00:30:38 +01:00
- Minimum supported Rust version (MSRV) is now 1.68.
2022-09-11 21:13:20 +01:00
2023-09-16 00:30:38 +01:00
## 0.7.2
2023-01-07 01:02:02 +00:00
2022-09-11 21:11:33 +01:00
- Set SameSite attribute when adding a session removal cookie. [#284 ]
2022-08-28 20:30:32 +01:00
- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
2022-07-24 15:29:50 +01:00
2022-09-11 21:11:33 +01:00
[#284 ]: https://github.com/actix/actix-extras/pull/284
2023-09-16 00:30:38 +01:00
## 0.7.1
2023-01-07 01:02:02 +00:00
2022-07-24 15:29:50 +01:00
- Fix interaction between session state changes and renewal. [#265 ]
2022-07-09 19:03:28 +01:00
2022-07-24 16:27:25 +02:00
[#265 ]: https://github.com/actix/actix-extras/pull/265
2022-07-09 19:03:28 +01:00
2023-09-16 00:30:38 +01:00
## 0.7.0
2023-01-07 01:02:02 +00:00
2022-07-03 21:18:14 +01:00
- Added `TtlExtensionPolicy` enum to support different strategies for extending the TTL attached to the session state. `TtlExtensionPolicy::OnEveryRequest` now allows for long-lived sessions that do not expire if the user remains active. [#233 ]
- `SessionLength` is now called `SessionLifecycle` . [#233 ]
- `SessionLength::Predetermined` is now called `SessionLifecycle::PersistentSession` . [#233 ]
- The fields for Both `SessionLength` variants have been extracted into separate types (`PersistentSession` and `BrowserSession` ). All fields are now private, manipulated via methods, to allow adding more configuration parameters in the future in a non-breaking fashion. [#233 ]
- `SessionLength::Predetermined::max_session_length` is now called `PersistentSession::session_ttl` . [#233 ]
- `SessionLength::BrowserSession::state_ttl` is now called `BrowserSession::session_state_ttl` . [#233 ]
- `SessionMiddlewareBuilder::max_session_length` is now called `SessionMiddlewareBuilder::session_lifecycle` . [#233 ]
- The `SessionStore` trait requires the implementation of a new method, `SessionStore::update_ttl` . [#233 ]
2022-07-09 20:14:27 +01:00
- All types used to configure `SessionMiddleware` have been moved to the `config` sub-module. [#233 ]
- Update `actix` dependency to `0.13` .
- Update `actix-redis` dependency to `0.12` .
2022-06-22 20:42:46 +09:00
- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
2022-03-25 23:28:11 +00:00
2022-07-03 21:18:14 +01:00
[#233 ]: https://github.com/actix/actix-extras/pull/233
2023-09-16 00:30:38 +01:00
## 0.6.2
2023-01-07 01:02:02 +00:00
2022-03-25 18:25:38 +00:00
- Implement `SessionExt` for `GuardContext` . [#234 ]
2022-03-25 19:08:09 +00:00
- `RedisSessionStore` will prevent connection timeouts from causing user-visible errors. [#235 ]
2022-03-25 18:10:38 +00:00
- Do not leak internal implementation details to callers when errors occur. [#236 ]
2022-03-25 19:08:09 +00:00
2022-03-25 18:25:38 +00:00
[#234 ]: https://github.com/actix/actix-extras/pull/234
2022-03-25 18:10:38 +00:00
[#236 ]: https://github.com/actix/actix-extras/pull/236
2022-03-25 19:08:09 +00:00
[#235 ]: https://github.com/actix/actix-extras/pull/235
2022-03-15 16:29:37 +00:00
2023-09-16 00:30:38 +01:00
## 0.6.1
2022-03-21 00:48:24 +00:00
2023-01-07 01:02:02 +00:00
- No significant changes since `0.6.0` .
2022-03-21 00:48:24 +00:00
2023-09-16 00:30:38 +01:00
## 0.6.0
2023-01-07 01:02:02 +00:00
2022-03-05 23:22:14 +00:00
### Added
2023-01-07 01:02:02 +00:00
2022-03-15 16:29:37 +00:00
- `SessionMiddleware` , a middleware to provide support for saving/updating/deleting session state against a pluggable storage backend (see `SessionStore` trait). [#212 ]
- `CookieSessionStore` , a cookie-based backend to store session state. [#212 ]
- `RedisActorSessionStore` , a Redis-based backend to store session state powered by `actix-redis` . [#212 ]
- `RedisSessionStore` , a Redis-based backend to store session state powered by `redis-rs` . [#212 ]
- Add TLS support for Redis via `RedisSessionStore` . [#212 ]
- Implement `SessionExt` for `ServiceResponse` . [#212 ]
2022-03-05 23:22:14 +00:00
### Changed
2023-01-07 01:02:02 +00:00
2022-03-15 16:29:37 +00:00
- Rename `UserSession` to `SessionExt` . [#212 ]
2022-03-05 23:22:14 +00:00
### Removed
2023-01-07 01:02:02 +00:00
2022-03-15 16:29:37 +00:00
- `CookieSession` ; replaced with `CookieSessionStore` , a storage backend for `SessionMiddleware` . [#212 ]
- `Session::set_session` ; use `Session::insert` to modify the session state. [#212 ]
2022-03-05 23:22:14 +00:00
[#212 ]: https://github.com/actix/actix-extras/pull/212
2023-09-16 00:30:38 +01:00
## 0.5.0
2022-03-01 03:11:21 +00:00
2023-01-07 01:02:02 +00:00
- Update `actix-web` dependency to `4` .
2022-03-01 03:11:21 +00:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.8
2021-12-29 10:25:44 +00:00
2023-01-07 01:02:02 +00:00
- Update `actix-web` dependency to `4.0.0-rc.1` .
2021-12-29 10:25:44 +00:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.7
2023-01-07 01:02:02 +00:00
2021-12-29 10:22:56 +00:00
- Update `actix-web` dependency to `4.0.0.beta-18` . [#218 ]
2021-12-29 09:42:31 +00:00
- Minimum supported Rust version (MSRV) is now 1.54.
2021-12-12 19:11:58 +00:00
2021-12-29 10:22:56 +00:00
[#218 ]: https://github.com/actix/actix-extras/pull/218
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.6
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update `actix-web` dependency to `4.0.0.beta-15` . [#216 ]
2021-12-18 03:37:23 +00:00
[#216 ]: https://github.com/actix/actix-extras/pull/216
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.5
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update `actix-web` dependency to `4.0.0.beta-14` . [#209 ]
- Remove `UserSession` implementation for `RequestHead` . [#209 ]
2022-03-05 23:22:14 +00:00
- A session will be created in the storage backend if and only if there is some data inside the session state. This reduces the performance impact of `SessionMiddleware` on routes that do not leverage sessions. [#207 ]
2021-12-11 16:05:21 +00:00
2022-03-05 23:22:14 +00:00
[#207 ]: https://github.com/actix/actix-extras/pull/207
2021-12-11 16:05:21 +00:00
[#209 ]: https://github.com/actix/actix-extras/pull/209
2021-10-21 17:37:00 +01:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.4
2021-11-22 23:21:00 +00:00
2023-01-07 01:02:02 +00:00
- No significant changes since `0.5.0-beta.3` .
2021-11-22 23:21:00 +00:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.3
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Impl `Clone` for `CookieSession` . [#201 ]
- Update `actix-web` dependency to v4.0.0-beta.10. [#203 ]
- Minimum supported Rust version (MSRV) is now 1.52.
2021-10-18 13:03:14 +01:00
[#201 ]: https://github.com/actix/actix-extras/pull/201
2021-10-21 13:10:00 +00:00
[#203 ]: https://github.com/actix/actix-extras/pull/203
2021-04-02 11:31:30 +01:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.2
2021-06-27 07:28:26 +01:00
2023-01-07 01:02:02 +00:00
- No notable changes.
2021-06-27 07:28:26 +01:00
2023-09-16 00:30:38 +01:00
## 0.5.0-beta.1
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Add `Session::entries` . [#170 ]
- Rename `Session::{set => insert}` to match standard hash map naming. [#170 ]
- Return values from `Session::remove` . [#170 ]
- Add `Session::remove_as` deserializing variation. [#170 ]
- Simplify `Session::get_changes` now always returning iterator even when empty. [#170 ]
- Swap order of arguments on `Session::set_session` . [#170 ]
- Update `actix-web` dependency to 4.0.0 beta.
- Minimum supported Rust version (MSRV) is now 1.46.0.
2021-03-21 09:38:29 +00:00
2021-03-23 22:35:27 +00:00
[#170 ]: https://github.com/actix/actix-extras/pull/170
2023-09-16 00:30:38 +01:00
## 0.4.1
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- `Session::set_session` takes a `IntoIterator` instead of `Iterator` . [#105 ]
- Fix calls to `session.purge()` from paths other than the one specified in the cookie. [#129 ]
2021-03-21 09:38:29 +00:00
[#105 ]: https://github.com/actix/actix-extras/pull/105
[#129 ]: https://github.com/actix/actix-extras/pull/129
2020-09-11 21:22:55 +01:00
2023-09-16 00:30:38 +01:00
## 0.4.0
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update `actix-web` dependency to 3.0.0.
- Minimum supported Rust version (MSRV) is now 1.42.0.
2020-05-17 11:34:00 +09:00
2023-09-16 00:30:38 +01:00
## 0.4.0-alpha.1
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update the `time` dependency to 0.2.7
- Update the `actix-web` dependency to 3.0.0-alpha.1
- Long lasting auto-prolonged session [#1292 ]
- Minimize `futures` dependency
2020-03-13 06:04:07 +09:00
[#1292 ]: https://github.com/actix/actix-web/pull/1292
Upgrade `time` to 0.2.5 (#1254)
* Use `OffsetDateTime` instead of `PrimitiveDateTime`
* Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse`
* Remove unused `time` dependency from actix-multipart
* Fix a few errors with time related tests from the `time` upgrade
* Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions
* Upgrade `time` to 0.2.2
* Correctly parse C's asctime time format using time 0.2's new format patterns
* Update CHANGES.md
* Use `time` without any of its deprecated functions
* Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value
* Use the more readable version of `Duration::seconds(0)`, `Duration::zero()`
* Remove unneeded conversion of time::Duration to std::time::Duration
* Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds
* Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()`
* Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another
* Fix the actix-http::cookie::do_not_panic_on_large_max_ages test
* Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2
Mainly minor changes. Type inference can be used alongside the new
`time::parse` method, such that the type doesn't need to be specified.
This will be useful if a refactoring takes place that changes the type.
There are also new macros, which are used where possible.
One change that is not immediately obvious, in `HttpDate`, there was an
unnecessary conditional. As the time crate allows for negative durations
(and can perform arithmetic with such), the if/else can be removed
entirely.
Time v0.2.3 also has some bug fixes, which is why I am not using a more
general v0.2 in Cargo.toml.
v0.2.3 has been yanked, as it was backwards imcompatible. This version
reverts the breaking change, while still supporting rustc back to
1.34.0.
* Add missing `time::offset` macro import
* Fix type confusion when using `time::parse` followed by `using_offset`
* Update `time` to 0.2.5
* Update CHANGES.md
Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 06:44:22 -05:00
2020-09-11 21:22:55 +01:00
## 0.3.0 - 2019-12-20
2019-12-20 07:59:07 +00:00
2023-01-07 01:02:02 +00:00
- Release
2019-12-20 07:59:07 +00:00
2020-09-11 21:22:55 +01:00
## 0.3.0-alpha.4 - 2019-12-xx
2019-12-20 07:59:07 +00:00
2023-01-07 01:02:02 +00:00
- Allow access to sessions also from not mutable references to the request
2019-12-06 11:24:25 +06:00
2020-09-11 21:22:55 +01:00
## 0.3.0-alpha.3 - 2019-12-xx
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Add access to the session from RequestHead for use of session from guard methods
- Migrate to `std::future`
- Migrate to `actix-web` 2.0
2019-12-06 11:24:25 +06:00
2020-09-11 21:22:55 +01:00
## 0.2.0 - 2019-07-08
2023-01-07 01:02:02 +00:00
2024-01-06 21:08:09 +00:00
- Enhanced `actix-session` to facilitate state changes. Use `Session.renew()` at successful login to cycle a session (new key/cookie but keeps state). Use `Session.purge()` at logout to invalid a session cookie (and remove from redis cache, if applicable).
2019-07-03 07:56:50 -04:00
2020-09-11 21:22:55 +01:00
## 0.1.1 - 2019-06-03
2019-06-03 10:52:43 +06:00
2023-01-07 01:02:02 +00:00
- Fix optional cookie session support
2019-05-18 11:20:09 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0 - 2019-05-18
2019-05-18 11:20:09 -07:00
2023-01-07 01:02:02 +00:00
- Use actix-web 1.0.0-rc
2019-05-12 10:53:21 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-beta.4 - 2019-05-12
2019-05-12 10:53:21 -07:00
2023-01-07 01:02:02 +00:00
- Use actix-web 1.0.0-beta.4
2019-04-28 09:08:51 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-beta.2 - 2019-04-28
2019-04-28 09:08:51 -07:00
2023-01-07 01:02:02 +00:00
- Add helper trait `UserSession` which allows to get session for ServiceRequest and HttpRequest
2019-04-20 21:16:51 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-beta.1 - 2019-04-20
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update actix-web to beta.1
- `CookieSession::max_age()` accepts value in seconds
2019-04-19 17:23:17 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-alpha.6 - 2019-04-14
2019-04-13 16:35:25 -07:00
2023-01-07 01:02:02 +00:00
- Update actix-web alpha.6
2019-04-07 23:42:05 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-alpha.4 - 2019-04-08
2019-04-07 23:42:05 -07:00
2023-01-07 01:02:02 +00:00
- Update actix-web
2019-04-02 21:49:31 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-alpha.3 - 2019-04-02
2019-04-02 21:49:31 -07:00
2023-01-07 01:02:02 +00:00
- Update actix-web
2019-03-29 22:06:14 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-alpha.2 - 2019-03-29
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Update actix-web
- Use new feature name for secure cookies
2019-03-29 22:06:14 -07:00
2020-09-11 21:22:55 +01:00
## 0.1.0-alpha.1 - 2019-03-28
2023-01-07 01:02:02 +00:00
2021-12-29 09:36:12 +00:00
- Initial impl