feat(main): Initialise RequireLogin middleware on launch
This commit is contained in:
parent
ef5e8ec8bd
commit
64453ec683
1 changed files with 11 additions and 4 deletions
15
src/main.rs
15
src/main.rs
|
@ -18,14 +18,14 @@ extern crate actix_web;
|
||||||
extern crate chrono;
|
extern crate chrono;
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
extern crate futures;
|
extern crate futures;
|
||||||
|
extern crate hyper;
|
||||||
extern crate r2d2;
|
extern crate r2d2;
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
extern crate reqwest;
|
extern crate reqwest;
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
|
extern crate serde_json;
|
||||||
extern crate url;
|
extern crate url;
|
||||||
extern crate url_serde;
|
extern crate url_serde;
|
||||||
extern crate serde_json;
|
|
||||||
extern crate hyper;
|
|
||||||
|
|
||||||
pub mod oidc;
|
pub mod oidc;
|
||||||
pub mod db;
|
pub mod db;
|
||||||
|
@ -36,7 +36,7 @@ pub mod schema;
|
||||||
|
|
||||||
use actix::prelude::*;
|
use actix::prelude::*;
|
||||||
use actix_web::*;
|
use actix_web::*;
|
||||||
use actix_web::middleware::{Logger, SessionStorage, CookieSessionBackend};
|
use actix_web::middleware::{Logger, SessionStorage, CookieSessionBackendBuilder};
|
||||||
use actix_web::http::Method;
|
use actix_web::http::Method;
|
||||||
use db::*;
|
use db::*;
|
||||||
use diesel::pg::PgConnection;
|
use diesel::pg::PgConnection;
|
||||||
|
@ -71,6 +71,7 @@ fn main() {
|
||||||
let oidc_url = config("OIDC_DISCOVERY_URL");
|
let oidc_url = config("OIDC_DISCOVERY_URL");
|
||||||
let oidc_config = oidc::load_oidc(&oidc_url)
|
let oidc_config = oidc::load_oidc(&oidc_url)
|
||||||
.expect("Failed to retrieve OIDC discovery document");
|
.expect("Failed to retrieve OIDC discovery document");
|
||||||
|
let base_url = config("BASE_URL");
|
||||||
|
|
||||||
let oidc = oidc::OidcExecutor {
|
let oidc = oidc::OidcExecutor {
|
||||||
oidc_config,
|
oidc_config,
|
||||||
|
@ -101,10 +102,16 @@ fn main() {
|
||||||
tera,
|
tera,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let sessions = SessionStorage::new(
|
||||||
|
CookieSessionBackendBuilder::new(&key)
|
||||||
|
.secure(base_url.starts_with("https"))
|
||||||
|
.finish());
|
||||||
|
|
||||||
App::with_state(state)
|
App::with_state(state)
|
||||||
.middleware(Logger::default())
|
.middleware(Logger::default())
|
||||||
// TODO: Configure session backend with more secure settings.
|
// TODO: Configure session backend with more secure settings.
|
||||||
.middleware(SessionStorage::new(CookieSessionBackend::new(key)))
|
.middleware(sessions)
|
||||||
|
.middleware(RequireLogin)
|
||||||
.resource("/", |r| r.method(Method::GET).with(forum_index))
|
.resource("/", |r| r.method(Method::GET).with(forum_index))
|
||||||
.resource("/thread/submit", |r| r.method(Method::POST).with2(submit_thread))
|
.resource("/thread/submit", |r| r.method(Method::POST).with2(submit_thread))
|
||||||
.resource("/thread/reply", |r| r.method(Method::POST).with2(reply_thread))
|
.resource("/thread/reply", |r| r.method(Method::POST).with2(reply_thread))
|
||||||
|
|
Loading…
Reference in a new issue