aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-27 01:35:48 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-27 01:35:48 -0500
commitb89f6fa7be912160f6dd92aad9a63c69ba2c5a2c (patch)
tree1cbebec09439ded7922b6c85397a24c474407a80
parent5f1d07a62baa4b00208f1e251624876275a1fb63 (diff)
downloadteleterm-b89f6fa7be912160f6dd92aad9a63c69ba2c5a2c.tar.gz
teleterm-b89f6fa7be912160f6dd92aad9a63c69ba2c5a2c.zip
the server doesn't need to know about the web oauth configs
-rw-r--r--teleterm/src/cmd/server.rs23
-rw-r--r--teleterm/src/server.rs35
-rw-r--r--teleterm/src/server/tls.rs5
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);