From 792a8c4c09ef0ca7369cb52d82f13217b1feff69 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 18 Aug 2024 10:37:02 +0200 Subject: [PATCH] auth: minor steps toward setting up default (admin) principal --- lib/auth/auth.lisp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/auth/auth.lisp b/lib/auth/auth.lisp index 98f0035..0c4544f 100644 --- a/lib/auth/auth.lisp +++ b/lib/auth/auth.lisp @@ -16,17 +16,19 @@ ((admin-credentials :reader admin-credentials :initarg :admin-credentials))) (defclass context (core:context) - ((authenticator :initarg :authenticator))) + ((authenticator :reader authenticator :initarg :authenticator))) (defun setup (cfg) (let* ((auth (make-instance 'simple-authenticator)) - (ctx (core:default-setup cfg 'context :authenticator auth))) + (ctx (core:default-setup cfg 'context :authenticator auth)) + (cred (admin-credentials cfg))) + (setf (gethash :admin (principals auth)) cred) ctx)) ;;;; simple / basic auth service implementation (defclass simple-authenticator () - ((principals))) + ((principals :reader principals :initform (make-hash-table)))) (defclass simple-credentials () ((login-name) @@ -42,8 +44,10 @@ ;;;; login entry point (defun login (cred) - (let ((srv (core:find-service :auth))) - (util:lgi cred (admin-credentials (core:config srv))))) + (let* ((srv (core:find-service :auth)) + (auth (authenticator srv)) + (admin (gethash :admin (principals auth)))) + (util:lgi cred admin))) ;;;; auxiliary functions