Skip to main content

AuthenticatedPeer

Struct AuthenticatedPeer 

Source
pub struct AuthenticatedPeer {
    pub peer_id: String,
    pub role: TokenRole,
    pub parties: Vec<PartyRef>,
    pub version: VersionNumber,
}
Available on crate feature server only.
Expand description

The party a request was authenticated as.

Fields§

§peer_id: String

A stable identifier for the platform, for logging and for looking up its state.

§role: TokenRole

Which handshake token this is, which decides what it may address.

§parties: Vec<PartyRef>

The parties this platform speaks for, from the roles of its credentials.

§version: VersionNumber

The OCPI version the connection was registered with.

Implementations§

Source§

impl AuthenticatedPeer

Source

pub fn owns(&self, party: &PartyRef) -> bool

Whether this platform speaks for party.

This is what decides whether a client-owned-object URL is theirs to write to.

Source

pub fn check_scope(&self, module: &ModuleId) -> Result<(), OcpiError>

Checks that this token may address module.

When a server receives a request with a valid CREDENTIALS_TOKEN_A, on another module than credentials or versions, the server SHALL respond with an HTTP 401 - Unauthorized status code.

§Errors

Returns OcpiError::TokenAOutOfScope, which maps to HTTP 401.

Spec: 2.3.0 §transport_and_format_authorization_header

Source

pub fn check_ownership(&self, owner: &PartyRef) -> Result<(), OcpiError>

Checks that this platform may write to a client-owned object under owner.

When a client tries to access an object with a URL that has a different country_code and/or party_id than one of the CredentialsRoles given during the credentials handshake, it is allowed to respond with an HTTP 404 status code, this way blocking client access to objects that do not belong to them.

A 404 rather than a 403 is deliberate: it does not reveal whether the object exists.

§Errors

Returns OcpiError::NotFound, which maps to HTTP 404.

Spec: 2.3.0 §transport_and_format_errors

Trait Implementations§

Source§

impl Clone for AuthenticatedPeer

Source§

fn clone(&self) -> AuthenticatedPeer

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AuthenticatedPeer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for AuthenticatedPeer

Source§

fn eq(&self, other: &AuthenticatedPeer) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AuthenticatedPeer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more