Changeset View
Changeset View
Standalone View
Standalone View
services/identity/src/main.rs
use clap::{Parser, Subcommand}; | use clap::{Parser, Subcommand}; | ||||
use database::DatabaseClient; | use database::DatabaseClient; | ||||
use interceptor::check_auth; | use interceptor::check_auth; | ||||
use tonic::transport::Server; | use tonic::transport::Server; | ||||
use tracing_subscriber::FmtSubscriber; | use tracing_subscriber::FmtSubscriber; | ||||
mod client_service; | |||||
mod config; | mod config; | ||||
mod constants; | mod constants; | ||||
mod database; | mod database; | ||||
mod interceptor; | mod interceptor; | ||||
mod keygen; | mod keygen; | ||||
mod nonce; | mod nonce; | ||||
mod pake_grpc; | mod pake_grpc; | ||||
mod service; | mod service; | ||||
mod token; | mod token; | ||||
use config::load_config; | use config::load_config; | ||||
use constants::{IDENTITY_SERVICE_SOCKET_ADDR, SECRETS_DIRECTORY}; | use constants::{IDENTITY_SERVICE_SOCKET_ADDR, SECRETS_DIRECTORY}; | ||||
use keygen::generate_and_persist_keypair; | use keygen::generate_and_persist_keypair; | ||||
use service::{IdentityKeyserverServiceServer, MyIdentityService}; | use service::{IdentityKeyserverServiceServer, MyIdentityService}; | ||||
use tracing::info; | use tracing::info; | ||||
use client_service::{ClientService, IdentityClientServiceServer}; | |||||
#[derive(Parser)] | #[derive(Parser)] | ||||
#[clap(author, version, about, long_about = None)] | #[clap(author, version, about, long_about = None)] | ||||
#[clap(propagate_version = true)] | #[clap(propagate_version = true)] | ||||
struct Cli { | struct Cli { | ||||
#[clap(subcommand)] | #[clap(subcommand)] | ||||
command: Commands, | command: Commands, | ||||
} | } | ||||
Show All 21 Lines | Commands::Keygen { dir } => { | ||||
generate_and_persist_keypair(dir)?; | generate_and_persist_keypair(dir)?; | ||||
} | } | ||||
Commands::Server => { | Commands::Server => { | ||||
load_config(); | load_config(); | ||||
let addr = IDENTITY_SERVICE_SOCKET_ADDR.parse()?; | let addr = IDENTITY_SERVICE_SOCKET_ADDR.parse()?; | ||||
let aws_config = aws_config::from_env().region("us-east-2").load().await; | let aws_config = aws_config::from_env().region("us-east-2").load().await; | ||||
let database_client = DatabaseClient::new(&aws_config); | let database_client = DatabaseClient::new(&aws_config); | ||||
let server = MyIdentityService::new(database_client); | let server = MyIdentityService::new(database_client); | ||||
let svc = | let keyserver_service = | ||||
IdentityKeyserverServiceServer::with_interceptor(server, check_auth); | IdentityKeyserverServiceServer::with_interceptor(server, check_auth); | ||||
let client_server = | |||||
IdentityClientServiceServer::new(ClientService::new()); | |||||
info!("Listening to gRPC traffic on {}", addr); | info!("Listening to gRPC traffic on {}", addr); | ||||
Server::builder().add_service(svc).serve(addr).await?; | Server::builder() | ||||
.add_service(keyserver_service) | |||||
.add_service(client_server) | |||||
.serve(addr) | |||||
.await?; | |||||
} | } | ||||
Commands::PopulateDB => unimplemented!(), | Commands::PopulateDB => unimplemented!(), | ||||
} | } | ||||
Ok(()) | Ok(()) | ||||
} | } |