Skip to main content

Module oidc_error_extensions

Module oidc_error_extensions 

Source
Expand description

OpenID Connect Core Error Code Extensions

This module implements additional error codes for OpenID Connect, including the unmet_authentication_requirements error code and other enhanced error handling capabilities.

§Implemented Error Extensions

  • unmet_authentication_requirements - Authentication requirements not met
  • Enhanced error descriptions and URIs
  • Structured error reporting
  • Error code validation and mapping
  • Custom error code mappings for extensible error handling

§Custom Error Mappings

The OidcErrorManager supports custom error code mappings that allow:

  • Mapping custom string identifiers to standard or extended error codes
  • Runtime extensibility for domain-specific error codes
  • Override standard error code mappings for specialized behavior
  • Error code resolution from string identifiers

§Usage Examples

use auth_framework::server::oidc::oidc_error_extensions::{OidcErrorManager, OidcErrorCode, OidcErrorResponse};

// Parse error codes from strings (e.g. from HTTP query params):
let code: OidcErrorCode = "invalid_request".parse().unwrap();
assert_eq!(code.to_string(), "invalid_request");

// Build an error response fluently:
let response = OidcErrorResponse::new(OidcErrorCode::LoginRequired)
    .description("Session expired, please log in again")
    .state("state123")
    .detail("session_age", serde_json::json!(7200))
    .build();

// OidcErrorManager with custom mappings:
let mut manager = OidcErrorManager::default();
manager.add_custom_error_mapping(
    "payment_required".to_string(),
    OidcErrorCode::InsufficientIdentityAssurance,
);
let error_code = manager.resolve_error_code("payment_required");

Structs§

AuthenticationRequirements
Authentication requirements details
OidcErrorManager
Error handling manager for OpenID Connect
OidcErrorResponse
OpenID Connect error response
OidcErrorResponseBuilder
Fluent builder for OidcErrorResponse.

Enums§

OidcErrorCode
Extended OpenID Connect error codes