pub struct VerifiedClientMetadata { /* private fields */ }
Expand description
The verified client metadata.
All the fields required by the OpenID Connect Dynamic Client Registration Spec 1.0 or with a default value are accessible via methods.
To access other fields, use this type’s Deref
implementation.
§Example
use oauth2_types::{
oidc::ApplicationType,
registration::VerifiedClientMetadata,
requests::GrantType,
};
use url::Url;
let verified_metadata = metadata.validate()?;
// The redirect URIs are required during validation so this is not an `Option`.
let _: &[Url] = verified_metadata.redirect_uris();
// The field has a default value so this is not an `Option`.
let _: ApplicationType = verified_metadata.application_type();
// Other fields can be accessed via `Deref`.
if let Some(jwks_uri) = &verified_metadata.jwks_uri {
println!("Client's JWK Set is available at {jwks_uri}");
}
Implementations§
§impl VerifiedClientMetadata
impl VerifiedClientMetadata
pub fn redirect_uris(&self) -> &[Url]
pub fn redirect_uris(&self) -> &[Url]
Array of redirection URIs for use in redirect-based flows such as the authorization code flow.
All the URIs used by the client in an authorization request’s
redirect_uri
field must appear in this list.
Methods from Deref<Target = ClientMetadata>§
pub fn response_types(&self) -> Vec<ResponseType>
pub fn response_types(&self) -> Vec<ResponseType>
Array of the OAuth 2.0 response_type
values that the client can use
at the authorization endpoint.
All the types used by the client in an authorization request’s
response_type
field must appear in this list.
Defaults to DEFAULT_RESPONSE_TYPES
.
pub fn grant_types(&self) -> &[GrantType]
pub fn grant_types(&self) -> &[GrantType]
Array of OAuth 2.0 grant_type
values that the client can use at the
token endpoint.
Note that the possible grant types depend on the response types.
All the types used by the client in a token request’s grant_type
field
must appear in this list.
Defaults to DEFAULT_GRANT_TYPES
.
pub fn application_type(&self) -> ApplicationType
pub fn application_type(&self) -> ApplicationType
The kind of the application.
Defaults to DEFAULT_APPLICATION_TYPE
.
pub fn token_endpoint_auth_method(&self) -> &OAuthClientAuthenticationMethod
pub fn token_endpoint_auth_method(&self) -> &OAuthClientAuthenticationMethod
Requested client authentication method for the token endpoint.
Defaults to DEFAULT_TOKEN_AUTH_METHOD
.
pub fn id_token_signed_response_alg(&self) -> &JsonWebSignatureAlg
pub fn id_token_signed_response_alg(&self) -> &JsonWebSignatureAlg
JWS alg
algorithm required for signing the ID Token issued to this
client.
If this field is present, it must not be
JsonWebSignatureAlg::None
, unless the client uses only response
types that return no ID Token from the authorization endpoint.
Defaults to DEFAULT_SIGNING_ALGORITHM
.
pub fn id_token_encrypted_response(
&self,
) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
pub fn id_token_encrypted_response( &self, ) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
JWE alg
and enc
algorithms required for encrypting the ID Token
issued to this client.
Always returns Some
if id_token_encrypted_response_alg
is provided,
using the default of DEFAULT_ENCRYPTION_ENC_ALGORITHM
for the enc
value if needed.
pub fn userinfo_encrypted_response(
&self,
) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
pub fn userinfo_encrypted_response( &self, ) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
JWE alg
and enc
algorithms required for encrypting user info
responses.
Always returns Some
if userinfo_encrypted_response_alg
is provided,
using the default of DEFAULT_ENCRYPTION_ENC_ALGORITHM
for the enc
value if needed.
pub fn request_object_encryption(
&self,
) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
pub fn request_object_encryption( &self, ) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
JWE alg
and enc
algorithms the client is declaring that it may use
for encrypting Request Objects sent to the provider.
Always returns Some
if request_object_encryption_alg
is provided,
using the default of DEFAULT_ENCRYPTION_ENC_ALGORITHM
for the enc
value if needed.
pub fn require_auth_time(&self) -> bool
pub fn require_auth_time(&self) -> bool
Whether the auth_time
Claim in the ID Token is required.
Defaults to false
.
pub fn require_signed_request_object(&self) -> bool
pub fn require_signed_request_object(&self) -> bool
Whether the client will only send authorization requests as [Request Objects].
Defaults to false
.
Whether the client will only send authorization requests via the pushed authorization request endpoint.
Defaults to false
.
pub fn introspection_encrypted_response(
&self,
) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
pub fn introspection_encrypted_response( &self, ) -> Option<(&JsonWebEncryptionAlg, &JsonWebEncryptionEnc)>
JWE alg
and enc
algorithms for encrypting responses of the
introspection endpoint.
Always returns Some
if introspection_encrypted_response_alg
is
provided, using the default of DEFAULT_ENCRYPTION_ENC_ALGORITHM
for
the enc
value if needed.
Trait Implementations§
§impl Clone for VerifiedClientMetadata
impl Clone for VerifiedClientMetadata
§fn clone(&self) -> VerifiedClientMetadata
fn clone(&self) -> VerifiedClientMetadata
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for VerifiedClientMetadata
impl Debug for VerifiedClientMetadata
§impl Deref for VerifiedClientMetadata
impl Deref for VerifiedClientMetadata
§type Target = ClientMetadata
type Target = ClientMetadata
§fn deref(&self) -> &<VerifiedClientMetadata as Deref>::Target
fn deref(&self) -> &<VerifiedClientMetadata as Deref>::Target
§impl PartialEq for VerifiedClientMetadata
impl PartialEq for VerifiedClientMetadata
§fn eq(&self, other: &VerifiedClientMetadata) -> bool
fn eq(&self, other: &VerifiedClientMetadata) -> bool
self
and other
values to be equal, and is used
by ==
.§impl Serialize for VerifiedClientMetadata
impl Serialize for VerifiedClientMetadata
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for VerifiedClientMetadata
impl StructuralPartialEq for VerifiedClientMetadata
Auto Trait Implementations§
impl Freeze for VerifiedClientMetadata
impl RefUnwindSafe for VerifiedClientMetadata
impl Send for VerifiedClientMetadata
impl Sync for VerifiedClientMetadata
impl Unpin for VerifiedClientMetadata
impl UnwindSafe for VerifiedClientMetadata
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more