diff --git a/Cargo.lock b/Cargo.lock index fe5b0b7..008a3b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4573,7 +4573,7 @@ dependencies = [ [[package]] name = "warpgate" -version = "0.4.0" +version = "0.5.0" dependencies = [ "ansi_term", "anyhow", @@ -4607,7 +4607,7 @@ dependencies = [ [[package]] name = "warpgate-admin" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "async-trait", @@ -4635,7 +4635,7 @@ dependencies = [ [[package]] name = "warpgate-common" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "argon2", @@ -4675,7 +4675,7 @@ dependencies = [ [[package]] name = "warpgate-database-protocols" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bitflags", "bytes 1.2.1", @@ -4688,7 +4688,7 @@ dependencies = [ [[package]] name = "warpgate-db-entities" -version = "0.4.0" +version = "0.5.0" dependencies = [ "chrono", "poem-openapi", @@ -4700,7 +4700,7 @@ dependencies = [ [[package]] name = "warpgate-db-migrations" -version = "0.4.0" +version = "0.5.0" dependencies = [ "async-std", "chrono", @@ -4711,7 +4711,7 @@ dependencies = [ [[package]] name = "warpgate-protocol-http" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "async-trait", @@ -4742,7 +4742,7 @@ dependencies = [ [[package]] name = "warpgate-protocol-mysql" -version = "0.4.0" +version = "0.5.0" dependencies = [ "anyhow", "async-trait", @@ -4768,7 +4768,7 @@ dependencies = [ [[package]] name = "warpgate-protocol-ssh" -version = "0.4.0" +version = "0.5.0" dependencies = [ "ansi_term", "anyhow", @@ -4792,7 +4792,7 @@ dependencies = [ [[package]] name = "warpgate-sso" -version = "0.4.0" +version = "0.5.0" dependencies = [ "async-trait", "bytes 1.2.1", @@ -4808,7 +4808,7 @@ dependencies = [ [[package]] name = "warpgate-web" -version = "0.4.0" +version = "0.5.0" dependencies = [ "rust-embed", "serde", diff --git a/warpgate-protocol-http/src/catchall.rs b/warpgate-protocol-http/src/catchall.rs index 9bf9127..9a44523 100644 --- a/warpgate-protocol-http/src/catchall.rs +++ b/warpgate-protocol-http/src/catchall.rs @@ -2,14 +2,14 @@ use std::sync::Arc; use poem::session::Session; use poem::web::websocket::WebSocket; -use poem::web::{Data, FromRequest}; +use poem::web::{Data, FromRequest, Redirect}; use poem::{handler, Body, IntoResponse, Request, Response}; use serde::Deserialize; use tokio::sync::Mutex; use tracing::*; use warpgate_common::{Services, Target, TargetHTTPOptions, TargetOptions, WarpgateServerHandle}; -use crate::common::{gateway_redirect, SessionAuthorization, SessionExt}; +use crate::common::{SessionAuthorization, SessionExt}; use crate::proxy::{proxy_normal_request, proxy_websocket_request}; #[derive(Deserialize)] @@ -18,6 +18,10 @@ struct QueryParams { warpgate_target: Option, } +pub fn target_select_redirect() -> Response { + Redirect::temporary("/@warpgate").into_response() +} + #[handler] pub async fn catchall_endpoint( req: &Request, @@ -28,7 +32,7 @@ pub async fn catchall_endpoint( server_handle: Option>>>, ) -> poem::Result { let Some((target, options)) = get_target_for_request(req, services.0).await? else { - return Ok(gateway_redirect(req).into_response()); + return Ok(target_select_redirect()); }; session.set_target_name(target.name.clone());