pub struct ControlPlaneMinter { /* private fields */ }Expand description
Mints proxy tokens for one MicroVM through the control plane.
The bridge between the two lanes: ControlPlane::mint_auth_token answers a
control::ProxyToken, TokenMinter wants a session::ProxyToken, and the From
impl at session/proxy.rs is the conversion — one .into() at the boundary, which is
why that impl is From rather than a named function.
The plane sits behind an Arc rather than a reference because the minter must outlive
the call that built the session: minting happens inside the request path on every later
request, which is what makes it happen at all (TRAP-9).
Public so a driving adapter that builds its own session mints through this rather than a copy of it.
Implementations§
Trait Implementations§
Source§impl Debug for ControlPlaneMinter
impl Debug for ControlPlaneMinter
Source§impl TokenMinter for ControlPlaneMinter
impl TokenMinter for ControlPlaneMinter
Source§fn mint_for_ports(
&self,
ports: &[u16],
) -> BoxFuture<'_, Result<ProxyToken, Error>>
fn mint_for_ports( &self, ports: &[u16], ) -> BoxFuture<'_, Result<ProxyToken, Error>>
Overrides the default, which ignores the ports and delegates.
This is the minter that has a control plane behind it, so it is the one that can
actually widen a token’s scope — and without this override
Session::connect_headers(8080) would keep answering a header pair behind a token
scoped to 9000 only, which the proxy refuses with 403 Access to port denied. See
TokenMinter::mint_for_ports for the measurement.