diff --git a/src/pam.rs b/src/pam.rs index c455f03a864874b151be65f5ff5e0a4f7615ee11..31d5b35f8811683ba5cbab82e92df32980c9f992 100644 --- a/src/pam.rs +++ b/src/pam.rs @@ -24,6 +24,8 @@ use crate::oauth::get_access_token_password; use crate::logging::setup_log; +use crate::cache::CACHE; + use pamsm::{PamServiceModule, Pam, PamFlag, PamError, PamLibExt}; fn pam_sm_prepare(argv: &Vec<String>) -> Config { @@ -86,8 +88,9 @@ impl PamServiceModule for PamOidc { debug!("Successfully got password"); match get_access_token_password(conf, "pam", username.to_string(), password.to_string(), PamError::SERVICE_ERR, PamError::AUTH_ERR) { - Ok(_) => { + Ok(t) => { info!("Authenticated {} using Resource Owner Password Grant", username); + CACHE.save_user_token(username.to_string(), t.into()); return PamError::SUCCESS; }, Err(e) => {