Module builder

Module builder 

Source
Expand description

Builder used to construct an OAuth2ResourceServer instance.

For further information on the different properties, see OAuth2ResourceServerBuilder and TenantConfigurationBuilder.

§Example using DefaultClaims

use tower_oauth2_resource_server::server::OAuth2ResourceServer;
use tower_oauth2_resource_server::tenant::TenantConfiguration;

#[tokio::main]
async fn main() {
    let oauth2_resource_server = <OAuth2ResourceServer>::builder()
        .add_tenant(TenantConfiguration::builder("https://some-auth-server.com")
            .audiences(&["https://some-resource-server.com"])
            .build().await.expect("Failed to build tenant configuration"))
        .build()
        .await;
}

§Example using custom claims implementation

use serde::{Deserialize, Serialize};
use tower_oauth2_resource_server::server::OAuth2ResourceServer;
use tower_oauth2_resource_server::tenant::TenantConfiguration;

#[derive(Clone, Debug, Deserialize, Serialize)]
struct MyClaims {
    pub iss: String,
    pub scp: Vec<String>
}
#[tokio::main]
async fn main() {
    let oauth2_resource_server = OAuth2ResourceServer::<MyClaims>::builder()
        .add_tenant(TenantConfiguration::builder("https://some-auth-server.com")
            .audiences(&["https://some-resource-server.com"])
            .build().await.expect("Failed to build tenant configuration"))
        .build()
        .await;
}

Structs§

OAuth2ResourceServerBuilder