summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client.rs39
-rw-r--r--src/server.rs57
2 files changed, 4 insertions, 92 deletions
diff --git a/src/client.rs b/src/client.rs
deleted file mode 100644
index b0cfa42..0000000
--- a/src/client.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use authz::AllowRequest;
-use authz::ability_client::AbilityClient;
-use hello_world::HelloRequest;
-use hello_world::greeter_client::GreeterClient;
-
-pub mod authz {
- tonic::include_proto!("authz.rpc");
-}
-
-pub mod hello_world {
- tonic::include_proto!("helloworld");
-}
-
-#[tokio::main]
-async fn main() -> Result<(), Box<dyn std::error::Error>> {
- {
- let mut client = GreeterClient::connect("http://[::1]:50051").await?;
- let request = tonic::Request::new(HelloRequest {
- name: "Tonic".into(),
- });
-
- let response = client.say_hello(request).await?;
- println!("RESPONSE={:?}", response);
- }
-
- {
- let request = tonic::Request::new(AllowRequest {
- subject: "gid://example/User/1".into(),
- permission: "gid://example/Permission/1".into(),
- resource: "gid://example/Project/1".into(),
- });
-
- let mut client = AbilityClient::connect("http://[::1]:50051").await?;
- let response = client.allowed(request).await?;
- println!("RESPONSE={:?}", response);
- }
-
- Ok(())
-}
diff --git a/src/server.rs b/src/server.rs
index 3b7d55e..f84dc08 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -1,18 +1,14 @@
-use authz_rpc::ability_server::{Ability, AbilityServer};
-use authz_rpc::{AllowReply, AllowRequest};
use envoy_types::ext_authz::v3::pb::{
Authorization, AuthorizationServer, CheckRequest, CheckResponse,
};
use envoy_types::ext_authz::v3::{CheckRequestExt, CheckResponseExt};
-use hello_world::greeter_server::{Greeter, GreeterServer};
-use hello_world::{HelloReply, HelloRequest};
use tonic::{Request, Response, Status, transport::Server};
-#[derive(Default)]
-struct MyServer;
+#[derive(Debug, Default)]
+struct PolicyServer;
#[tonic::async_trait]
-impl Authorization for MyServer {
+impl Authorization for PolicyServer {
async fn check(
&self,
request: Request<CheckRequest>,
@@ -35,57 +31,12 @@ impl Authorization for MyServer {
}
}
-pub mod authz_rpc {
- tonic::include_proto!("authz.rpc");
-}
-
-#[derive(Debug, Default)]
-pub struct MyAbility {}
-
-#[tonic::async_trait]
-impl Ability for MyAbility {
- async fn allowed(
- &self,
- request: Request<AllowRequest>,
- ) -> Result<Response<AllowReply>, Status> {
- println!("Got a request: {:?}", request);
-
- let reply = AllowReply { result: true };
- Ok(Response::new(reply))
- }
-}
-
-pub mod hello_world {
- tonic::include_proto!("helloworld");
-}
-
-#[derive(Debug, Default)]
-pub struct MyGreeter {}
-
-#[tonic::async_trait]
-impl Greeter for MyGreeter {
- async fn say_hello(
- &self,
- request: Request<HelloRequest>,
- ) -> Result<Response<HelloReply>, Status> {
- println!("Got a request: {:?}", request);
-
- let reply = HelloReply {
- message: format!("Hello {}!", request.into_inner().name),
- };
-
- Ok(Response::new(reply))
- }
-}
-
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let addr = "[::1]:50051".parse()?;
Server::builder()
- .add_service(GreeterServer::new(MyGreeter::default()))
- .add_service(AbilityServer::new(MyAbility::default()))
- .add_service(AuthorizationServer::new(MyServer::default()))
+ .add_service(AuthorizationServer::new(PolicyServer::default()))
.serve(addr)
.await?;