diff options
| author | mo khan <mo@mokhan.ca> | 2025-06-27 13:24:40 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-06-27 13:24:40 -0600 |
| commit | 84420606035fd62bbdcacb6231b9181f197d068f (patch) | |
| tree | 0dbbe29a92d090900f30c089181fa1f27f1318b5 /src/lib.rs | |
| parent | e970d1e29aa9a4e1a4ac6419079928b803536825 (diff) | |
refactor: extract create_server function to test it directly
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -1,2 +1,22 @@ pub mod authorization; pub use authorization::{Authorizer, CedarAuthorizer, CheckService}; + +use envoy_types::ext_authz::v3::pb::AuthorizationServer; +use std::sync::Arc; +use tonic::transport::Server; + +pub fn create_server() -> Result<tonic::transport::server::Router, Box<dyn std::error::Error>> { + let (_health_reporter, health_service) = tonic_health::server::health_reporter(); + let authorizer = Arc::new(authorization::CedarAuthorizer::default()); + let check_service = authorization::CheckService::new(authorizer); + let server = Server::builder() + .add_service(AuthorizationServer::new(check_service)) + .add_service(health_service) + .add_service( + tonic_reflection::server::Builder::configure() + .register_encoded_file_descriptor_set(tonic_health::pb::FILE_DESCRIPTOR_SET) + .build_v1() + .unwrap(), + ); + Ok(server) +} |
