Skip to main content

Crate pdk_token_introspection_lib

Crate pdk_token_introspection_lib 

Source
Expand description

PDK Token Introspection Library

Library which provides token introspection functionality for OAuth2 and OpenID Connect token validation policies.

§Primary types

§Example

use pdk::token_introspection::{TokenValidatorBuilder, ScopesValidator};
use pdk::hl::Service;

#[entrypoint]
async fn configure(
    launcher: Launcher,
    validator_builder: TokenValidatorBuilder,  // Injected from context
    Configuration(config): Configuration,
) -> Result<(), LaunchError> {
    let service = Service::new(&config.host, config.port);
    let scopes = ScopesValidator::all(vec!["read".into()]);

    let validator = validator_builder
        .new("token-validator")
        .with_path("/introspect")
        .with_authorization_value("Basic abc123")
        .with_service(service)
        .with_scopes_validator(scopes)
        .build()?;

    launcher.launch(on_request(|req| async {
        let token = extract_token(&req)?;
        let result = validator.validate(&token).await?;
        println!("Client ID: {:?}", result.client_id());
    })).await
}

Structs§

ExpirableToken
Token with expiration time that can be cached.
IntrospectionResult
Result of a successful token introspection.
OneTimeUseToken
Token without expiration time (always considered expired).
ScopesValidator
Validates token scopes against required scopes.
TokenValidator
Token validator that handles the complete validation flow including caching.
TokenValidatorBuilder
Builder for creating TokenValidator instances.
TokenValidatorBuilderInstance
A configurable instance of a token validator builder.
TokenValidatorConfig
Configuration for the token validator.

Enums§

ConfigError
Policy configuration errors.
IntrospectionError
Errors from the introspection flow.
ParsedToken
Represents a parsed token from the introspection response.
TokenValidatorBuildError
Errors that can occur during token validator building.
ValidationError
Errors related to token validation.
Value
Represents any valid JSON value.

Traits§

Token
Common interface for parsed tokens.

Type Aliases§

Object
Type alias for token properties object