diff options
Diffstat (limited to 'teleterm')
-rw-r--r-- | teleterm/src/cmd/server.rs | 23 | ||||
-rw-r--r-- | teleterm/src/server.rs | 35 | ||||
-rw-r--r-- | teleterm/src/server/tls.rs | 5 |
3 files changed, 24 insertions, 39 deletions
diff --git a/teleterm/src/cmd/server.rs b/teleterm/src/cmd/server.rs index 25571dc..914d1c6 100644 --- a/teleterm/src/cmd/server.rs +++ b/teleterm/src/cmd/server.rs @@ -31,13 +31,22 @@ impl crate::config::Config for Config { fn run( &self, ) -> Box<dyn futures::Future<Item = (), Error = Error> + Send> { + let oauth_configs = self + .oauth_configs + .iter() + .filter_map(|(ty, configs)| { + configs + .get(&crate::protocol::AuthClient::Cli) + .map(|config| (*ty, config.clone())) + }) + .collect(); if let Some(tls_identity_file) = &self.server.tls_identity_file { create_server_tls( self.server.listen_address, self.server.read_timeout, tls_identity_file, self.server.allowed_login_methods.clone(), - self.oauth_configs.clone(), + oauth_configs, self.server.uid, self.server.gid, ) @@ -46,7 +55,7 @@ impl crate::config::Config for Config { self.server.listen_address, self.server.read_timeout, self.server.allowed_login_methods.clone(), - self.oauth_configs.clone(), + oauth_configs, self.server.uid, self.server.gid, ) @@ -79,10 +88,7 @@ fn create_server( >, oauth_configs: std::collections::HashMap< crate::protocol::AuthType, - std::collections::HashMap< - crate::protocol::AuthClient, - crate::oauth::Config, - >, + crate::oauth::Config, >, uid: Option<users::uid_t>, gid: Option<users::gid_t>, @@ -112,10 +118,7 @@ fn create_server_tls( >, oauth_configs: std::collections::HashMap< crate::protocol::AuthType, - std::collections::HashMap< - crate::protocol::AuthClient, - crate::oauth::Config, - >, + crate::oauth::Config, >, uid: Option<users::uid_t>, gid: Option<users::gid_t>, diff --git a/teleterm/src/server.rs b/teleterm/src/server.rs index 97659f4..437d7e9 100644 --- a/teleterm/src/server.rs +++ b/teleterm/src/server.rs @@ -309,10 +309,7 @@ pub struct Server< allowed_auth_types: std::collections::HashSet<crate::protocol::AuthType>, oauth_configs: std::collections::HashMap< crate::protocol::AuthType, - std::collections::HashMap< - crate::protocol::AuthClient, - crate::oauth::Config, - >, + crate::oauth::Config, >, } @@ -327,10 +324,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> >, oauth_configs: std::collections::HashMap< crate::protocol::AuthType, - std::collections::HashMap< - crate::protocol::AuthClient, - crate::oauth::Config, - >, + crate::oauth::Config, >, ) -> Self { Self { @@ -385,27 +379,18 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> )); } oauth if oauth.is_oauth() => { - let configs = self.oauth_configs.get(&ty).context( + let config = self.oauth_configs.get(&ty).context( crate::error::AuthTypeMissingOauthConfig { ty }, )?; let (refresh, client) = match oauth { - crate::protocol::Auth::RecurseCenter { - auth_client, - id, - .. - } => { - let config = configs.get(auth_client).context( - crate::error::AuthTypeMissingOauthConfig { ty }, - )?; - ( - id.is_some(), - ty.oauth_client( - config, - id.as_ref().map(std::string::String::as_str), - ) - .unwrap(), + crate::protocol::Auth::RecurseCenter { id, .. } => ( + id.is_some(), + ty.oauth_client( + config, + id.as_ref().map(std::string::String::as_str), ) - } + .unwrap(), + ), _ => unreachable!(), }; diff --git a/teleterm/src/server/tls.rs b/teleterm/src/server/tls.rs index 694866a..28b9b28 100644 --- a/teleterm/src/server/tls.rs +++ b/teleterm/src/server/tls.rs @@ -28,10 +28,7 @@ impl Server { >, oauth_configs: std::collections::HashMap< crate::protocol::AuthType, - std::collections::HashMap< - crate::protocol::AuthClient, - crate::oauth::Config, - >, + crate::oauth::Config, >, ) -> Self { let (tls_sock_w, tls_sock_r) = tokio::sync::mpsc::channel(100); |