Removed unecessary set-cookie header

This commit is contained in:
Antoine Gersant 2017-06-11 23:28:59 -07:00
parent 3298865f22
commit fa3729340a

View file

@ -5,7 +5,7 @@ use std::ops::Deref;
use std::sync::Arc; use std::sync::Arc;
use iron::prelude::*; use iron::prelude::*;
use iron::headers::{Authorization, Basic, SetCookie}; use iron::headers::{Authorization, Basic};
use iron::{AroundMiddleware, Handler, status}; use iron::{AroundMiddleware, Handler, status};
use mount::Mount; use mount::Mount;
use params; use params;
@ -144,15 +144,8 @@ struct AuthHandler {
collection: Arc<Collection>, collection: Arc<Collection>,
} }
fn set_cookie(username: &str, response: &mut Response) {
response
.headers
.set(SetCookie(vec![format!("username={}; Path=/", username)]));
}
impl Handler for AuthHandler { impl Handler for AuthHandler {
fn handle(&self, req: &mut Request) -> IronResult<Response> { fn handle(&self, req: &mut Request) -> IronResult<Response> {
let mut username = None;
{ {
let mut auth_success = false; let mut auth_success = false;
@ -161,7 +154,6 @@ impl Handler for AuthHandler {
if let Some(ref password) = auth.password { if let Some(ref password) = auth.password {
auth_success = self.collection auth_success = self.collection
.auth(auth.username.as_str(), password.as_str()); .auth(auth.username.as_str(), password.as_str());
username = Some(auth.username.clone());
req.extensions req.extensions
.insert::<SessionKey>(Session { username: auth.username.clone() }); .insert::<SessionKey>(Session { username: auth.username.clone() });
} }
@ -179,16 +171,7 @@ impl Handler for AuthHandler {
} }
let mut response = self.handler.handle(req); self.handler.handle(req)
// Add cookie to response
if let Some(username) = username {
if let Ok(ref mut response) = response {
set_cookie(username.as_str(), response);
}
}
response
} }
} }
@ -215,12 +198,10 @@ fn auth(request: &mut Request, collection: &Collection) -> IronResult<Response>
}; };
} }
if collection.auth(username.as_str(), password.as_str()) { if collection.auth(username.as_str(), password.as_str()) {
let mut response = Response::with((status::Ok, ""));
set_cookie(&username, &mut response);
request request
.extensions .extensions
.insert::<SessionKey>(Session { username: username.clone() }); .insert::<SessionKey>(Session { username: username.clone() });
Ok(response) Ok(Response::with((status::Ok, "")))
} else { } else {
Err(Error::from(ErrorKind::IncorrectCredentials).into()) Err(Error::from(ErrorKind::IncorrectCredentials).into())
} }