aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm/src/web.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-26 00:58:00 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-26 00:58:00 -0500
commit81fc5c6a2c6df38025961945cb496ccc4d432036 (patch)
treea52144909ace2e0fa4d47333cc059a46c4a04b99 /teleterm/src/web.rs
parentd55090ca3e7c3bf421ba58f02db3a97f7b21e631 (diff)
downloadteleterm-81fc5c6a2c6df38025961945cb496ccc4d432036.tar.gz
teleterm-81fc5c6a2c6df38025961945cb496ccc4d432036.zip
allow configuring the allowed login methods for the web server
Diffstat (limited to 'teleterm/src/web.rs')
-rw-r--r--teleterm/src/web.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/teleterm/src/web.rs b/teleterm/src/web.rs
index bf39c47..d3a79d4 100644
--- a/teleterm/src/web.rs
+++ b/teleterm/src/web.rs
@@ -14,6 +14,8 @@ use gotham::state::FromState as _;
struct Config {
server_address: (String, std::net::SocketAddr),
public_address: String,
+ allowed_login_methods:
+ std::collections::HashSet<crate::protocol::AuthType>,
}
#[derive(Default, serde::Deserialize, serde::Serialize)]
@@ -25,6 +27,8 @@ struct SessionData {
struct WebConfig<'a> {
username: Option<&'a str>,
public_address: &'a str,
+ allowed_login_methods:
+ &'a std::collections::HashSet<crate::protocol::AuthType>,
}
impl<'a> WebConfig<'a> {
@@ -35,6 +39,7 @@ impl<'a> WebConfig<'a> {
.as_ref()
.map(std::string::String::as_str),
public_address: &config.public_address,
+ allowed_login_methods: &config.allowed_login_methods,
}
}
}
@@ -48,10 +53,14 @@ impl Server {
listen_address: std::net::SocketAddr,
public_address: String,
server_address: (String, std::net::SocketAddr),
+ allowed_login_methods: std::collections::HashSet<
+ crate::protocol::AuthType,
+ >,
) -> Self {
let data = Config {
server_address,
public_address,
+ allowed_login_methods,
};
Self {
server: Box::new(gotham::init_server(