add garbage auth that does not help

This commit is contained in:
ghe0 2025-02-02 03:34:24 +02:00
parent de2d6ea8f5
commit e857d7c8dc
Signed by: ghe0
GPG Key ID: 451028EE56A0FBB4
2 changed files with 24 additions and 5 deletions

@ -1,12 +1,18 @@
mod grpc;
use tokio_stream::{self as stream};
use tonic::Request;
use tonic::{metadata::MetadataValue, transport::Channel, Request};
use grpc::dummy::{test_service_client::TestServiceClient, Empty, SomeRequest, StreamRequest};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut client = TestServiceClient::connect("http://[::1]:50051").await?;
let channel = Channel::from_static("http://[::1]:50051").connect().await?;
let token: MetadataValue<_> = "Bearer some-secret-token".parse()?;
let mut client = TestServiceClient::with_interceptor(channel, move |mut req: Request<_>| {
println!("Request: {:?}", req);
req.metadata_mut().insert("authorization", token.clone());
Ok(req)
});
let request =
Request::new(SomeRequest { what_client_sends: String::from("Hello from client!") });

@ -3,11 +3,12 @@ use grpc::dummy;
use std::pin::Pin;
use tokio_stream::{wrappers::ReceiverStream, Stream, StreamExt};
use tonic::async_trait;
use tonic::metadata::MetadataValue;
use tonic::{transport::Server, Request, Response, Status};
use dummy::{
test_service_server::{TestService, TestServiceServer},
Empty, SomeRequest, SomeResponse, StreamRequest, StreamResponse,
test_service_server::TestService, Empty, SomeRequest, SomeResponse, StreamRequest,
StreamResponse,
};
#[derive(Debug, Default)]
@ -90,8 +91,20 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let service = MyTestService::default();
println!("Starting gRPC server on {}", addr);
let service =
dummy::test_service_server::TestServiceServer::with_interceptor(service, check_auth);
Server::builder().add_service(TestServiceServer::new(service)).serve(addr).await?;
Server::builder().add_service(service).serve(addr).await?;
Ok(())
}
fn check_auth(req: Request<()>) -> Result<Request<()>, Status> {
let token: MetadataValue<_> = "Bearer some-secret-token".parse().unwrap();
println!("Request: {:?}", req);
match req.metadata().get("authorization") {
Some(t) if token == t => Ok(req),
_ => Err(Status::unauthenticated("No valid auth token")),
}
}