1
0
mirror of https://github.com/actix/actix-extras.git synced 2024-12-18 01:33:59 +01:00
actix-extras/actix-identity/CHANGES.md

144 lines
4.4 KiB
Markdown
Raw Normal View History

2019-06-12 11:52:48 +02:00
# Changes
2022-07-11 14:39:14 +02:00
## Unreleased - 2022-xx-xx
2022-07-19 02:33:53 +02:00
Feature: Add IdentityError to actix-identity crate. (#296) * Add IdentityError to actix-identity crate. In order to let crates in the actix web ecosystem interact correctly with `actix_web::Error`, this commit introduces its own error type, replacing the previous usage of `anyhow::Error`. * Mend some clippy warnings on IdentityError. * Split identity error into more granular versions. - `MissingIdentityError` occurs whenever we attempt to gather information about an identity from a session, and fail. - `LoginError` occurs whenever we attempt to login via an identity, and fail. * Feedback for identity error implementation. - `IdentityError` -> `GetIdentityError` - Move error messages into Display impl where appropriate - Split `id` and `get_identity` errors into two types - Implement `source` on custom errors * Expand identity error types with struct markers. In order to get a little more future compatibility and reduce abstraction leaking, this commit introduces some contextual structs to our identity errors package. * Improve doc message for SessionExpiryError. Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> * Improve identity error docs and messaging. Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> * Expand LostIdentityError with placeholder. Adds a placeholder unit struct to the LostIdentityError variant of GetIdentityError, which should let us expand on that variant with extra context later if we like. * Add From coercion for LostIdentityError. Improve the ergonomics of using the LostIdentityError unit struct. * Update Cargo.toml * Update CHANGES.md * expose identity error module * fix error impl Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> Co-authored-by: Rob Ede <robjtede@icloud.com>
2023-01-07 03:05:12 +01:00
- Replace use of `anyhow::Error` with specific error types. [#296]
2023-01-07 02:02:02 +01:00
- Minimum supported Rust version (MSRV) is now 1.59 due to transitive `time` dependency.
2022-07-19 02:33:53 +02:00
Feature: Add IdentityError to actix-identity crate. (#296) * Add IdentityError to actix-identity crate. In order to let crates in the actix web ecosystem interact correctly with `actix_web::Error`, this commit introduces its own error type, replacing the previous usage of `anyhow::Error`. * Mend some clippy warnings on IdentityError. * Split identity error into more granular versions. - `MissingIdentityError` occurs whenever we attempt to gather information about an identity from a session, and fail. - `LoginError` occurs whenever we attempt to login via an identity, and fail. * Feedback for identity error implementation. - `IdentityError` -> `GetIdentityError` - Move error messages into Display impl where appropriate - Split `id` and `get_identity` errors into two types - Implement `source` on custom errors * Expand identity error types with struct markers. In order to get a little more future compatibility and reduce abstraction leaking, this commit introduces some contextual structs to our identity errors package. * Improve doc message for SessionExpiryError. Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> * Improve identity error docs and messaging. Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> * Expand LostIdentityError with placeholder. Adds a placeholder unit struct to the LostIdentityError variant of GetIdentityError, which should let us expand on that variant with extra context later if we like. * Add From coercion for LostIdentityError. Improve the ergonomics of using the LostIdentityError unit struct. * Update Cargo.toml * Update CHANGES.md * expose identity error module * fix error impl Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> Co-authored-by: Rob Ede <robjtede@icloud.com>
2023-01-07 03:05:12 +01:00
[#296]: https://github.com/actix/actix-extras/pull/296
2022-07-19 02:33:53 +02:00
## 0.5.2 - 2022-07-19
2023-01-07 02:02:02 +01:00
- Fix visit deadline. [#263]
2022-07-19 02:33:53 +02:00
[#263]: https://github.com/actix/actix-extras/pull/263
2022-07-11 19:07:50 +02:00
## 0.5.1 - 2022-07-11
2023-01-07 02:02:02 +01:00
- Remove unnecessary dependencies. [#259]
[#259]: https://github.com/actix/actix-extras/pull/259
2022-07-11 14:39:14 +02:00
## 0.5.0 - 2022-07-11
2023-01-07 02:02:02 +01:00
2022-07-11 14:39:14 +02:00
`actix-identity` v0.5 is a complete rewrite. The goal is to streamline user experience and reduce maintenance overhead.
2022-07-11 14:39:14 +02:00
`actix-identity` is now designed as an additional layer on top of `actix-session` v0.7, focused on identity management. The identity information is stored in the session state, which is managed by `actix-session` and can be stored using any of the supported `SessionStore` implementations. This reduces the surface area in `actix-identity` (e.g., it is no longer concerned with cookies!) and provides a smooth upgrade path for users: if you need to work with sessions, you no longer need to choose between `actix-session` and `actix-identity`; they work together now!
`actix-identity` v0.5 has feature-parity with `actix-identity` v0.4; if you bump into any blocker when upgrading, please open an issue.
Changes:
2022-06-22 13:42:46 +02:00
- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
- `IdentityService`, `IdentityPolicy` and `CookieIdentityPolicy` have been replaced by `IdentityMiddleware`. [#246]
2022-07-11 14:39:14 +02:00
- Rename `RequestIdentity` trait to `IdentityExt`. [#246]
- Trying to extract an `Identity` for an unauthenticated user will return a `401 Unauthorized` response to the client. Extract an `Option<Identity>` or a `Result<Identity, actix_web::Error>` if you need to handle cases where requests may or may not be authenticated. [#246]
2023-01-07 02:02:02 +01:00
2022-07-11 14:39:14 +02:00
Example:
2023-01-07 02:02:02 +01:00
2022-07-11 14:39:14 +02:00
```rust
use actix_web::{http::header::LOCATION, get, HttpResponse, Responder};
use actix_identity::Identity;
#[get("/")]
async fn index(user: Option<Identity>) -> impl Responder {
if let Some(user) = user {
HttpResponse::Ok().finish()
} else {
// Redirect to login page if unauthenticated
HttpResponse::TemporaryRedirect()
.insert_header((LOCATION, "/login"))
.finish()
}
}
```
[#246]: https://github.com/actix/actix-extras/pull/246
2022-03-01 05:13:56 +01:00
## 0.4.0 - 2022-03-01
2023-01-07 02:02:02 +01:00
- Update `actix-web` dependency to `4`.
2022-03-01 05:13:56 +01:00
## 0.4.0-beta.9 - 2022-02-07
2023-01-07 02:02:02 +01:00
2022-02-07 03:30:26 +01:00
- Relax body type bounds on middleware impl. [#223]
2022-02-03 23:33:47 +01:00
- Update `actix-web` dependency to `4.0.0-rc.1`.
2022-02-07 03:30:26 +01:00
[#223]: https://github.com/actix/actix-extras/pull/223
## 0.4.0-beta.8 - 2022-01-21
2023-01-07 02:02:02 +01:00
- No significant changes since `0.4.0-beta.7`.
## 0.4.0-beta.7 - 2021-12-29
2023-01-07 02:02:02 +01:00
2021-12-29 11:22:56 +01:00
- Update `actix-web` dependency to `4.0.0.beta-18`. [#218]
2021-12-29 10:42:31 +01:00
- Minimum supported Rust version (MSRV) is now 1.54.
2021-12-29 11:22:56 +01:00
[#218]: https://github.com/actix/actix-extras/pull/218
2021-12-18 04:37:23 +01:00
## 0.4.0-beta.6 - 2021-12-18
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Update `actix-web` dependency to `4.0.0.beta-15`. [#216]
2021-12-18 04:37:23 +01:00
[#216]: https://github.com/actix/actix-extras/pull/216
## 0.4.0-beta.5 - 2021-12-12
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Update `actix-web` dependency to `4.0.0.beta-14`. [#209]
2021-12-11 17:05:21 +01:00
[#209]: https://github.com/actix/actix-extras/pull/209
## 0.4.0-beta.4 - 2021-11-22
2023-01-07 02:02:02 +01:00
- No significant changes since `0.4.0-beta.3`.
## 0.4.0-beta.3 - 2021-10-21
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Update `actix-web` dependency to v4.0.0-beta.10. [#203]
- Minimum supported Rust version (MSRV) is now 1.52.
2021-04-02 12:44:03 +02:00
[#203]: https://github.com/actix/actix-extras/pull/203
## 0.4.0-beta.2 - 2021-06-27
2021-06-27 08:28:26 +02:00
2023-01-07 02:02:02 +01:00
- No notable changes.
2021-06-27 08:28:26 +02:00
## 0.4.0-beta.1 - 2021-04-02
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Rename `CookieIdentityPolicy::{max_age => max_age_secs}`. [#168]
- Rename `CookieIdentityPolicy::{max_age_time => max_age}`. [#168]
- Update `actix-web` dependency to 4.0.0 beta.
- Minimum supported Rust version (MSRV) is now 1.46.0.
2020-09-22 00:05:40 +02:00
2021-03-23 06:05:03 +01:00
[#168]: https://github.com/actix/actix-extras/pull/168
2020-09-22 00:05:40 +02:00
## 0.3.1 - 2020-09-20
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Add method to set `HttpOnly` flag on cookie identity. [#102]
2021-03-23 06:05:03 +01:00
[#102]: https://github.com/actix/actix-extras/pull/102
2020-09-11 22:22:55 +02:00
## 0.3.0 - 2020-09-11
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Update `actix-web` dependency to 3.0.0.
- Minimum supported Rust version (MSRV) is now 1.42.0.
2020-05-17 04:34:00 +02:00
2020-09-11 22:22:55 +02:00
## 0.3.0-alpha.1 - 2020-03-14
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Update the `time` dependency to 0.2.7
- Update the `actix-web` dependency to 3.0.0-alpha.1
- Minimize `futures` dependency
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 12:44:22 +01:00
2020-09-11 22:22:55 +02:00
## 0.2.1 - 2020-01-10
2023-01-07 02:02:02 +01:00
- Fix panic with already borrowed: BorrowMutError #1263
2019-12-20 12:59:34 +01:00
2020-09-11 22:22:55 +02:00
## 0.2.0 - 2019-12-20
2019-12-20 12:59:34 +01:00
2023-01-07 02:02:02 +01:00
- Use actix-web 2.0
2019-06-12 11:52:48 +02:00
2020-09-11 22:22:55 +02:00
## 0.1.0 - 2019-06-xx
2023-01-07 02:02:02 +01:00
2021-12-29 10:36:12 +01:00
- Move identity middleware to separate crate