manta_server/backend_dispatcher/
authentication.rs

1//! Dispatches `AuthenticationTrait` methods to csm-rs or ochami-rs.
2
3use manta_backend_dispatcher::{
4  error::Error, interfaces::authentication::AuthenticationTrait,
5};
6
7use StaticBackendDispatcher::*;
8
9use crate::manta_backend_dispatcher::StaticBackendDispatcher;
10
11impl AuthenticationTrait for StaticBackendDispatcher {
12  async fn get_api_token(
13    &self,
14    username: &str,
15    password: &str,
16  ) -> Result<String, Error> {
17    let backend = self.backend_kind();
18    tracing::debug!(backend, user = %username, "dispatch: get_api_token");
19    let result = dispatch!(self, get_api_token, username, password);
20    if let Err(ref e) = result {
21      tracing::warn!(
22        backend,
23        user = %username,
24        error = %e,
25        "dispatch: get_api_token returned error from backend client"
26      );
27    }
28    result
29  }
30
31  async fn validate_api_token(&self, auth_token: &str) -> Result<(), Error> {
32    let backend = self.backend_kind();
33    tracing::debug!(backend, "dispatch: validate_api_token");
34    let result = dispatch!(self, validate_api_token, auth_token);
35    if let Err(ref e) = result {
36      tracing::warn!(
37        backend,
38        error = %e,
39        "dispatch: validate_api_token returned error from backend client"
40      );
41    }
42    result
43  }
44}