From 5fb2a6b13cdc406e3e8dfd010fabc398250bc450 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sat, 8 May 2021 12:36:46 +0200
Subject: [PATCH] [PAM] Store user access token in cache after successful
 authentication

---
 src/pam.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/pam.rs b/src/pam.rs
index c455f03..31d5b35 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) => {
-- 
GitLab