Start Matrix client authentication
This commit is contained in:
@@ -8,8 +8,10 @@ use actix_web::middleware::Logger;
|
||||
use actix_web::{App, HttpServer, web};
|
||||
use matrixgw_backend::app_config::AppConfig;
|
||||
use matrixgw_backend::constants;
|
||||
use matrixgw_backend::controllers::{auth_controller, server_controller};
|
||||
use matrixgw_backend::controllers::{auth_controller, matrix_link_controller, server_controller};
|
||||
use matrixgw_backend::matrix_connection::matrix_manager::MatrixManagerActor;
|
||||
use matrixgw_backend::users::User;
|
||||
use ractor::Actor;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> std::io::Result<()> {
|
||||
@@ -29,12 +31,22 @@ async fn main() -> std::io::Result<()> {
|
||||
.expect("Failed to create auto-login account!");
|
||||
}
|
||||
|
||||
// Create matrix clients manager actor
|
||||
let (manager_actor, manager_actor_handle) = Actor::spawn(
|
||||
Some("matrix-clients-manager".to_string()),
|
||||
MatrixManagerActor,
|
||||
(),
|
||||
)
|
||||
.await
|
||||
.expect("Failed to start Matrix manager actor!");
|
||||
|
||||
log::info!(
|
||||
"Starting to listen on {} for {}",
|
||||
AppConfig::get().listen_address,
|
||||
AppConfig::get().website_origin
|
||||
);
|
||||
|
||||
let manager_actor_clone = manager_actor.clone();
|
||||
HttpServer::new(move || {
|
||||
let session_mw = SessionMiddleware::builder(redis_store.clone(), secret_key.clone())
|
||||
.cookie_name("matrixgw-session".to_string())
|
||||
@@ -53,6 +65,7 @@ async fn main() -> std::io::Result<()> {
|
||||
.wrap(Logger::default())
|
||||
.wrap(session_mw)
|
||||
.wrap(cors)
|
||||
.app_data(web::Data::new(manager_actor_clone.clone()))
|
||||
.app_data(web::Data::new(RemoteIPConfig {
|
||||
proxy: AppConfig::get().proxy_ip.clone(),
|
||||
}))
|
||||
@@ -76,9 +89,20 @@ async fn main() -> std::io::Result<()> {
|
||||
"/api/auth/sign_out",
|
||||
web::get().to(auth_controller::sign_out),
|
||||
)
|
||||
// Matrix link controller
|
||||
.route(
|
||||
"/api/matrix_link/start_auth",
|
||||
web::post().to(matrix_link_controller::start_auth),
|
||||
)
|
||||
})
|
||||
.workers(4)
|
||||
.bind(&AppConfig::get().listen_address)?
|
||||
.run()
|
||||
.await
|
||||
.await?;
|
||||
|
||||
// Terminate manager actor
|
||||
manager_actor.stop(None);
|
||||
manager_actor_handle.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user