Files
galaxy/scripts/auth/pam_auth_helper.py
T
Nicola Soranzo 9d74bba7fb Drop support for retired Python 3.5
Upgrade syntax using `pyupgrade --py36-plus` .

Manually drop several `six` imports.

Also:
- Remove broken pr_cache in scripts/bootstrap_history.py
- Fix broken prefix removal in lib/galaxy/tool_util/deps/mulled/mulled_build.py
2020-10-07 11:52:13 +01:00

42 lines
933 B
Python
Executable File

#!/usr/bin/env python
import logging
import signal
import sys
log = logging.getLogger(__name__)
TIMEOUT = 5
try:
import pam
except ImportError:
log.debug('PAM auth helper: Could not import pam module')
sys.exit(1)
def handle_timeout(signum, stack):
raise OSError("Timed out reading input")
# set timeout so we don't block on reading stdin
signal.alarm(TIMEOUT)
pam_service = sys.stdin.readline().strip()
pam_username = sys.stdin.readline().strip()
pam_password = sys.stdin.readline().strip()
# cancel the alarm
signal.alarm(0)
p_auth = pam.pam()
authenticated = p_auth.authenticate(pam_username, pam_password, service=pam_service)
if authenticated:
log.debug(f'PAM auth helper: authentication successful for {pam_username}')
sys.stdout.write('True\n')
sys.exit(0)
else:
log.debug(f'PAM auth helper: authentication failed for {pam_username}')
sys.stdout.write('False\n')
sys.exit(1)