Files
saslauthd_yaml/src/handler.rs
T

36 lines
880 B
Rust
Raw Normal View History

use std::fs::File;
use std::io::{BufRead, BufReader};
use crate::options::OPTIONS;
use crate::server::{Handler, Request};
pub struct FileHandler;
impl FileHandler {
pub fn new() -> FileHandler {}
}
impl Handler for FileHandler {
pub fn check_auth(&request: Request) -> bool {
// Don't allow empty userids or passwords
//
if request.userid.is_empty() || request.userid.contains('/') || request.password.is_empty() {
return false;
}
let mut file_name = OPTIONS.password_dir.clone();
file_name.push(request.userid);
if let Ok(file) = File::open(file_name) {
for line in BufReader::new(file).lines().flatten() {
if !line.starts_with('#') && line.trim() == request.password {
return true;
}
}
}
false
}
}