pub struct AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>where
Algorithm: Algorithm,
Algorithm::SigningKey: Clone,
Algorithm::VerifyingKey: Clone,{ /* private fields */ }
Expand description
A wrapper around the Authority
which can be passed to the wrap
function of a App
/Scope
or Resource
.
Example
use actix_jwt_auth_middleware::{CookieSigner, Authority, AuthenticationService};
use actix_web::{web, App};
use serde::{Serialize, Deserialize};
use exonum_crypto::KeyPair;
use jwt_compact::{alg::Ed25519};
#[derive(Serialize, Deserialize, Clone)]
struct User {
id: u32
}
let key_pair = KeyPair::random();
let authority = Authority::<User, _, _, _>::new()
.refresh_authorizer(|| async move { Ok(()) })
.cookie_signer(Some(
CookieSigner::new()
.signing_key(key_pair.secret_key().clone())
.algorithm(Ed25519)
.build()
.unwrap()
))
.verifying_key(key_pair.public_key().clone())
.build()
.unwrap();
let app = App::new()
.service(
web::scope("/auth-only")
.wrap(
AuthenticationService::new(authority.clone())
)
);
Implementations§
source§impl<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>where
Claims: DeserializeOwned,
Algorithm: Algorithm,
Algorithm::SigningKey: Clone,
Algorithm::VerifyingKey: Clone,
impl<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>where
Claims: DeserializeOwned,
Algorithm: Algorithm,
Algorithm::SigningKey: Clone,
Algorithm::VerifyingKey: Clone,
sourcepub fn new(
authority: Authority<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
) -> AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
pub fn new(
authority: Authority<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
) -> AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
returns a new AuthenticationService wrapping the Authority
Trait Implementations§
source§impl<S, Body, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> Transform<S, ServiceRequest> for AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>where
S: Service<ServiceRequest, Response = ServiceResponse<Body>, Error = Error> + 'static,
S::Future: 'static,
Claims: Serialize + DeserializeOwned + Clone + 'static,
Algorithm: Algorithm + Clone + 'static,
Algorithm::SigningKey: Clone,
Algorithm::VerifyingKey: Clone,
Body: MessageBody,
RefreshAuthorizer: Handler<RefreshAuthorizerArgs, Output = Result<(), Error>> + Clone,
RefreshAuthorizerArgs: FromRequest + Clone + 'static,
impl<S, Body, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> Transform<S, ServiceRequest> for AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>where
S: Service<ServiceRequest, Response = ServiceResponse<Body>, Error = Error> + 'static,
S::Future: 'static,
Claims: Serialize + DeserializeOwned + Clone + 'static,
Algorithm: Algorithm + Clone + 'static,
Algorithm::SigningKey: Clone,
Algorithm::VerifyingKey: Clone,
Body: MessageBody,
RefreshAuthorizer: Handler<RefreshAuthorizerArgs, Output = Result<(), Error>> + Clone,
RefreshAuthorizerArgs: FromRequest + Clone + 'static,
§type Response = <AuthenticationMiddleware<S, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Service<ServiceRequest>>::Response
type Response = <AuthenticationMiddleware<S, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Service<ServiceRequest>>::Response
Responses produced by the service.
§type Transform = AuthenticationMiddleware<S, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
type Transform = AuthenticationMiddleware<S, Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs>
The
TransformService
value created by this factory§type Future = Ready<Result<<AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Transform<S, ServiceRequest>>::Transform, <AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Transform<S, ServiceRequest>>::InitError>>
type Future = Ready<Result<<AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Transform<S, ServiceRequest>>::Transform, <AuthenticationService<Claims, Algorithm, RefreshAuthorizer, RefreshAuthorizerArgs> as Transform<S, ServiceRequest>>::InitError>>
The future response value.
source§fn new_transform(&self, service: S) -> Self::Future
fn new_transform(&self, service: S) -> Self::Future
Creates and returns a new Transform component, asynchronously