aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py')
-rwxr-xr-xlib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py
deleted file mode 100755
index 12357dfb..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/cred/pamauth.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (c) Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Support for asynchronously authenticating using PAM.
-"""
-
-
-import PAM
-
-import getpass, threading, os
-
-from twisted.internet import threads, defer
-
-def pamAuthenticateThread(service, user, conv):
- def _conv(items):
- from twisted.internet import reactor
- try:
- d = conv(items)
- except:
- import traceback
- traceback.print_exc()
- return
- ev = threading.Event()
- def cb(r):
- ev.r = (1, r)
- ev.set()
- def eb(e):
- ev.r = (0, e)
- ev.set()
- reactor.callFromThread(d.addCallbacks, cb, eb)
- ev.wait()
- done = ev.r
- if done[0]:
- return done[1]
- else:
- raise done[1].type, done[1].value
-
- return callIntoPAM(service, user, _conv)
-
-def callIntoPAM(service, user, conv):
- """A testing hook.
- """
- pam = PAM.pam()
- pam.start(service)
- pam.set_item(PAM.PAM_USER, user)
- pam.set_item(PAM.PAM_CONV, conv)
- gid = os.getegid()
- uid = os.geteuid()
- os.setegid(0)
- os.seteuid(0)
- try:
- pam.authenticate() # these will raise
- pam.acct_mgmt()
- return 1
- finally:
- os.setegid(gid)
- os.seteuid(uid)
-
-def defConv(items):
- resp = []
- for i in range(len(items)):
- message, kind = items[i]
- if kind == 1: # password
- p = getpass.getpass(message)
- resp.append((p, 0))
- elif kind == 2: # text
- p = raw_input(message)
- resp.append((p, 0))
- elif kind in (3,4):
- print message
- resp.append(("", 0))
- else:
- return defer.fail('foo')
- d = defer.succeed(resp)
- return d
-
-def pamAuthenticate(service, user, conv):
- return threads.deferToThread(pamAuthenticateThread, service, user, conv)