From 603215095a347d571ea266e360fd7370ce174b9f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 11 Jul 2022 13:39:14 +0100 Subject: [PATCH] prepare actix-identity release 0.5.0 --- actix-identity/CHANGES.md | 49 +++++++++++++++++++++------------------ actix-identity/Cargo.toml | 2 +- actix-identity/README.md | 4 ++-- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/actix-identity/CHANGES.md b/actix-identity/CHANGES.md index 790b9a50c..cff585b4b 100644 --- a/actix-identity/CHANGES.md +++ b/actix-identity/CHANGES.md @@ -1,37 +1,40 @@ # Changes -## 0.5.0 - 2022-xx-xx +## Unreleased - 2022-xx-xx -`actix-identity:0.5.0` is a complete rewrite. The goal is to streamline user experience and reduce maintenance overhead. -`actix-identity:0.5.0` is designed as an additional layer on top of `actix-session:0.7.x`, 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` (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! +## 0.5.0 - 2022-07-11 +`actix-identity` v0.5 is a complete rewrite. The goal is to streamline user experience and reduce maintenance overhead. -`actix-identity:0.5.0` has feature-parity with `actix-identity:0.4.x` - if you bump into any blocker when upgrading, please open an issue. +`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: - Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency. - `IdentityService`, `IdentityPolicy` and `CookieIdentityPolicy` have been replaced by `IdentityMiddleware`. [#246] -- `RequestIdentity` has been replaced by `IdentityExt`. [#246] -- Trying to extract an `Identity` for an unauthenticated user will return a `401` response to the caller. Extract an `Option` or a `Result` if you need to work with users that may or may not be authenticated [#246]. Example: +- 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` or a `Result` if you need to handle cases where requests may or may not be authenticated. [#246] + + Example: + + ```rust + use actix_web::{http::header::LOCATION, get, HttpResponse, Responder}; + use actix_identity::Identity; -```rust -use actix_web::{http::header::LOCATION, get, HttpResponse, Responder}; -use actix_identity::Identity; - -#[get("/")] -async fn index(user: Option) -> impl Responder { - if let Some(user) = user { - HttpResponse::Ok().finish() - } else { - // Redirect to login page if unauthenticated - HttpResponse::TemporaryRedirect() - .insert_header((LOCATION, "/login")) - .finish() - } -} -``` + #[get("/")] + async fn index(user: Option) -> 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 diff --git a/actix-identity/Cargo.toml b/actix-identity/Cargo.toml index b0081715e..58224d086 100644 --- a/actix-identity/Cargo.toml +++ b/actix-identity/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-identity" -version = "0.4.0" +version = "0.5.0" authors = [ "Nikolay Kim ", "Luca Palmieri ", diff --git a/actix-identity/README.md b/actix-identity/README.md index 4dbbe5e85..3e1e85253 100644 --- a/actix-identity/README.md +++ b/actix-identity/README.md @@ -3,9 +3,9 @@ > Identity service for actix-web framework. [![crates.io](https://img.shields.io/crates/v/actix-identity?label=latest)](https://crates.io/crates/actix-identity) -[![Documentation](https://docs.rs/actix-identity/badge.svg?version=0.4.0)](https://docs.rs/actix-identity/0.4.0) +[![Documentation](https://docs.rs/actix-identity/badge.svg?version=0.5.0)](https://docs.rs/actix-identity/0.5.0) ![Apache 2.0 or MIT licensed](https://img.shields.io/crates/l/actix-identity) -[![Dependency Status](https://deps.rs/crate/actix-identity/0.4.0/status.svg)](https://deps.rs/crate/actix-identity/0.4.0) +[![Dependency Status](https://deps.rs/crate/actix-identity/0.5.0/status.svg)](https://deps.rs/crate/actix-identity/0.5.0) ## Documentation & community resources