From 0d284fdc6fb9deab29926c17f84d95de517a6def Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 6 May 2014 15:06:10 +0200 Subject: [PATCH] first commit --- pam_django.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pam_django.py diff --git a/pam_django.py b/pam_django.py new file mode 100644 index 0000000..67f162b --- /dev/null +++ b/pam_django.py @@ -0,0 +1,47 @@ + +import syslog + +def auth_log(msg): + syslog.openlog(facility=syslog.LOG_AUTH) + syslog.syslog("django_pam: " + msg) + syslog.closelog() + +def pam_sm_authenticate(pamh, flags, argv): + auth_log("pam_sm_authenticate") + try: + user = pamh.get_user(None) + except pamh.exception, e: + return e.pam_result + + if not user: + return pamh.PAM_USER_UNKNOWN + + # this fucking binding didn't support pam_get_pass so we rewrite it + try: + resp = pamh.conversation(pamh.Message(pamh.PAM_PROMPT_ECHO_OFF, 'Password:')) + except pamh.exception, e: + return e.pam_result + password = resp.resp + auth_log("%s %s %s" % (pamh.rhost, user, password)) + + return pamh.PAM_SUCCESS + +def pam_sm_setcred(pamh, flags, argv): + auth_log("pam_sm_setcred") + return pamh.PAM_SUCCESS + +def pam_sm_acct_mgmt(pamh, flags, argv): + auth_log("pam_sm_acct_mgmt") + return pamh.PAM_SUCCESS + +def pam_sm_open_session(pamh, flags, argv): + auth_log("pam_sm_open_session") + return pamh.PAM_SUCCESS + +def pam_sm_close_session(pamh, flags, argv): + auth_log("pam_sm_close_session") + return pamh.PAM_SUCCESS + +def pam_sm_chauthtok(pamh, flags, argv): + auth_log("pam_sm_chauthtok") + return pamh.PAM_SUCCESS