Skip to content
This repository was archived by the owner on Mar 8, 2023. It is now read-only.

Commit 087bec8

Browse files
author
Quentin Lux
committed
correct test
1 parent ba616fe commit 087bec8

4 files changed

Lines changed: 20 additions & 25 deletions

File tree

.travis.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ language: python
22
sudo: false
33
python:
44
- 2.7
5-
- 3.5
6-
- 3.6
7-
- 3.7
8-
- 3.8
95

106
# command to install dependencies
117
install:

pam-test.sqlite

0 Bytes
Binary file not shown.

privacyidea_pam.py

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -246,10 +246,12 @@ def offline_refill(self, serial, password):
246246
startdb(self.sql)
247247
refilltoken = None
248248
# get all possible serial/tokens for a user
249-
for row in sql_select_statement("SELECT refilltoken FROM refilltokens WHERE serial=?",
250-
(serial)):
249+
c.execute(sql_abstract("SELECT refilltoken FROM refilltokens WHERE serial=?"),
250+
(serial, ))
251+
for row in c.fetchall():
251252
refilltoken = row[0]
252253
syslog.syslog("Doing refill with token {0!s}".format(refilltoken))
254+
253255
closedb()
254256

255257
if refilltoken:
@@ -484,7 +486,6 @@ def pam_sm_authenticate(pamh, flags, argv):
484486
return pamh.PAM_AUTHINFO_UNAVAIL
485487

486488
try:
487-
488489
if grace_time is not None:
489490
syslog.syslog(syslog.LOG_DEBUG,
490491
"Grace period in minutes: %s " % (str(grace_time)))
@@ -494,7 +495,6 @@ def pam_sm_authenticate(pamh, flags, argv):
494495
rval = pamh.PAM_SUCCESS
495496

496497
if rval != pamh.PAM_SUCCESS:
497-
498498
# Check if user has tokens
499499
Auth.check_user_tokens(Auth.user)
500500

@@ -571,15 +571,18 @@ def check_offline_otp(sql_params, user, otp, window=10, refill=True):
571571
# get all possible serial/tokens for a user
572572
serials = []
573573
matching_serial = None
574-
for row in sql_select_statement("SELECT serial, user FROM authitems WHERE user=?"
575-
"GROUP by serial", (user,)):
574+
575+
c.execute(sql_abstract("SELECT serial, user FROM authitems WHERE user=?"
576+
"GROUP by serial"), (user,))
577+
for row in c.fetchall():
576578
serials.append(row[0])
577579

578580
for serial in serials:
579-
for row in sql_select_statement("SELECT counter, user, otp, serial FROM authitems "
581+
c.execute(sql_abstract("SELECT counter, user, otp, serial FROM authitems "
580582
"WHERE user=? and serial=? ORDER by counter "
581-
"LIMIT ?",
582-
(user, serial, window)):
583+
"LIMIT ?"),
584+
(user, serial, window))
585+
for row in c.fetchall():
583586
hash_value = row[2]
584587
if passlib.hash.pbkdf2_sha512.verify(otp, hash_value):
585588
res = True
@@ -660,11 +663,12 @@ def check_last_history(sql_params, user, rhost, grace_time, window=10):
660663
res = False
661664
events = []
662665

663-
for row in sql_select_statement("SELECT user, rhost, serial, last_success, last_error "
666+
c.execute(sql_abstract("SELECT user, rhost, serial, last_success, last_error "
664667
"FROM history "
665668
"WHERE user=? AND rhost=? ORDER by last_success "
666-
"LIMIT ?",
667-
(user, rhost, window)):
669+
"LIMIT ?"),
670+
(user, rhost, window))
671+
for row in c.fetchall():
668672
events.append(row)
669673

670674
if len(events)>0:
@@ -788,11 +792,3 @@ def sql_abstract(sql_statement):
788792
return sql_statement
789793
else:
790794
return sql_statement.replace('?','%s')
791-
792-
# Handle SQLite/MySQL SELECT statement
793-
def sql_select_statement(select_statement, sql_args):
794-
exec_statement = c.execute(sql_abstract(select_statement),sql_args)
795-
if SQLite:
796-
return exec_statement
797-
else:
798-
return c.fetchall()

tests/test_pam_module.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,10 @@ def test_06_refill(self):
321321

322322
# now with refill
323323
with responses.RequestsMock() as rsps:
324+
rsps.add(responses.GET,
325+
"http://my.privacyidea.server/token",
326+
body=json.dumps(USER_TOKEN_BODY),
327+
content_type="application/json")
324328
rsps.add(responses.POST,
325329
"http://my.privacyidea.server/validate/offlinerefill",
326330
body=json.dumps(REFILL_BODY),
@@ -335,7 +339,6 @@ def test_06_refill(self):
335339
"try_first_pass"]
336340
r = pam_sm_authenticate(pamh, flags, argv)
337341
self.assertEqual(r, PAMH.PAM_SUCCESS)
338-
print rsps.calls[1].request
339342
self.assertIn('refilltoken=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
340343
rsps.calls[1].request.body)
341344

0 commit comments

Comments
 (0)