pub struct AuthServerRequestCreationHint {
pub auth_server: Option<String>,
pub kid: Option<ByteString>,
pub audience: Option<String>,
pub scope: Option<Scope>,
pub client_nonce: Option<Vec<u8>>,
}
Expand description
This is sent by an RS as a response to an Unauthorized Resource Request Message to help the sender of the Unauthorized Resource Request Message acquire a valid access token.
For more information, see section 5.3 of RFC 9200.
Use the AuthServerRequestCreationHintBuilder
(which you can access using the
builder()
method) to create an instance of this struct.
Example
Figure 3 of RFC 9200 gives us an example of a Request Creation Hint payload, given in CBOR diagnostic notation1:
{
"AS" : "coaps://as.example.com/token",
"audience" : "coaps://rs.example.com"
"scope" : "rTempC",
"cnonce" : h'e0a156bb3f'
}
This could be built and serialized as an AuthServerRequestCreationHint
like so:
// Scope could be built from TextEncodedScope too,
// which also offers to take a space-separated string.
let scope = Scope::try_from(vec!["rTempC"])?;
let hint: AuthServerRequestCreationHint = AuthServerRequestCreationHint::builder()
.auth_server("coaps://as.example.com/token")
.audience("coaps://rs.example.com")
.scope(scope)
.client_nonce(vec![0xe0, 0xa1, 0x56, 0xbb, 0x3f])
.build()?;
let mut serialized = Vec::new();
hint.clone().serialize_into(&mut serialized)?;
assert_eq!(AuthServerRequestCreationHint::deserialize_from(serialized.as_slice())?, hint);
Note that abbreviations aren’t used here, so keep in mind that the labels are really integers instead of strings. ↩
Fields§
§auth_server: Option<String>
An absolute URI that identifies the appropriate AS for the RS.
kid: Option<ByteString>
The key identifier of a key used in an existing security association between the client and the RS.
audience: Option<String>
An identifier the client should request at the AS, as suggested by the RS.
scope: Option<Scope>
The suggested scope that the client should request towards the AS.
See the documentation of Scope
for details.
client_nonce: Option<Vec<u8>>
A client nonce as described in section 5.3.1 of RFC 9200.
Implementations§
source§impl AuthServerRequestCreationHint
impl AuthServerRequestCreationHint
sourcepub fn builder() -> AuthServerRequestCreationHintBuilder
pub fn builder() -> AuthServerRequestCreationHintBuilder
Returns a new builder for this struct.
Trait Implementations§
source§impl Clone for AuthServerRequestCreationHint
impl Clone for AuthServerRequestCreationHint
source§fn clone(&self) -> AuthServerRequestCreationHint
fn clone(&self) -> AuthServerRequestCreationHint
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for AuthServerRequestCreationHint
impl Default for AuthServerRequestCreationHint
source§fn default() -> AuthServerRequestCreationHint
fn default() -> AuthServerRequestCreationHint
source§impl Hash for AuthServerRequestCreationHint
impl Hash for AuthServerRequestCreationHint
source§impl PartialEq<AuthServerRequestCreationHint> for AuthServerRequestCreationHint
impl PartialEq<AuthServerRequestCreationHint> for AuthServerRequestCreationHint
source§fn eq(&self, other: &AuthServerRequestCreationHint) -> bool
fn eq(&self, other: &AuthServerRequestCreationHint) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl ToCborMap for AuthServerRequestCreationHint
impl ToCborMap for AuthServerRequestCreationHint
source§fn serialize_into<W>(self, writer: W) -> Result<(), Error<W::Error>>where
Self: Sized,
W: Write,
W::Error: Debug,
fn serialize_into<W>(self, writer: W) -> Result<(), Error<W::Error>>where Self: Sized, W: Write, W::Error: Debug,
writer
. Read moresource§fn deserialize_from<R>(reader: R) -> Result<Self, Error<R::Error>>where
Self: Sized,
R: Read,
R::Error: Debug,
fn deserialize_from<R>(reader: R) -> Result<Self, Error<R::Error>>where Self: Sized, R: Read, R::Error: Debug,
reader
— which is expected to be an instance of this type,
represented as a CBOR map bytestring — into an instance of this type. Read more