diff options
| author | mo khan <mo@mokhan.ca> | 2025-06-19 11:40:27 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-06-19 11:40:27 -0600 |
| commit | f08ef97f4894fde8feff08bb91bed1e1c1105b83 (patch) | |
| tree | fad101bae3ff8a1a9d7e2d312425c7fc89a08203 /src/main.rs | |
| parent | 594abe311e4dfbbcc477474561756bc5e5f0e539 (diff) | |
test: add tests
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/src/main.rs b/src/main.rs index 05d57719..25e2c88f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,35 +1,8 @@ -use envoy_types::ext_authz::v3::pb::{ - Authorization, AuthorizationServer, CheckRequest, CheckResponse, -}; -use envoy_types::ext_authz::v3::{CheckRequestExt, CheckResponseExt}; -use tonic::{Request, Response, Status, transport::Server}; +use envoy_types::ext_authz::v3::pb::AuthorizationServer; +use tonic::transport::Server; -#[derive(Debug, Default)] -struct PolicyServer; - -#[tonic::async_trait] -impl Authorization for PolicyServer { - async fn check( - &self, - request: Request<CheckRequest>, - ) -> Result<Response<CheckResponse>, Status> { - let request = request.into_inner(); - - let client_headers = request - .get_client_headers() - .ok_or_else(|| Status::invalid_argument("client headers not populated by envoy"))?; - - let mut request_status = Status::unauthenticated("not authorized"); - - if let Some(authorization) = client_headers.get("authorization") { - if authorization == "Bearer valid-token" { - request_status = Status::ok("request is valid"); - } - } - - Ok(Response::new(CheckResponse::with_status(request_status))) - } -} +pub mod authorization; +use authorization::PolicyServer; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { |
